抓取 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 是所有标题元素,无论其在树中的位置如何。