抓取 html 标记元素的 xpath 语法是什么?
what is the xpath syntax to grab html tag elements?
如何使用 xmlstarlet
打印下面 html
文件的标题值?
thufir@doge:~/.html$
thufir@doge:~/.html$ xmlstarlet sel -t -v "/html/header[@name='title']" -n hello.html
thufir@doge:~/.html$
thufir@doge:~/.html$ cat hello.html
<html>
<header><title>This is title</title></header>
<body>
Hello world
</body>
</html>
thufir@doge:~/.html$
抢 xml
可能比 html 有点 ?假设 garden-variety html
而不是 xhtml
.
我使用 xmlstarlet
的原因是专门使用 xpath
语法,这看起来很陌生。
我只是作弊并使用 Chrome 的开发者工具。
在 Chrome 中打开 HTML,打开开发者工具,然后在元素选项卡中,右键单击并 select 复制 > 复制 XPath。
/html/body/header/title
与:
"/html/header[@name='title']"
你 select 一个 header
元素,其属性 name
的值为 "title"。
你想要的是在header
元素中抓取一个title
元素:
//header/title
或者只使用:
//title
其中 select 是所有标题元素,无论其在树中的位置如何。
如何使用 xmlstarlet
打印下面 html
文件的标题值?
thufir@doge:~/.html$
thufir@doge:~/.html$ xmlstarlet sel -t -v "/html/header[@name='title']" -n hello.html
thufir@doge:~/.html$
thufir@doge:~/.html$ cat hello.html
<html>
<header><title>This is title</title></header>
<body>
Hello world
</body>
</html>
thufir@doge:~/.html$
抢 xml
可能比 html 有点 html
而不是 xhtml
.
我使用 xmlstarlet
的原因是专门使用 xpath
语法,这看起来很陌生。
我只是作弊并使用 Chrome 的开发者工具。
在 Chrome 中打开 HTML,打开开发者工具,然后在元素选项卡中,右键单击并 select 复制 > 复制 XPath。
/html/body/header/title
与:
"/html/header[@name='title']"
你 select 一个 header
元素,其属性 name
的值为 "title"。
你想要的是在header
元素中抓取一个title
元素:
//header/title
或者只使用:
//title
其中 select 是所有标题元素,无论其在树中的位置如何。