xpath表达式从链接中选择文本

时间:2010-02-22 14:31:47

标签: xpath

我有html文件的内容:

<a class="bf" title="Link to book" href="/book/229920/">book name</a>

帮助我构造xpath表达式以获取链接文本(书名)。 我尝试使用/a,但表达式评估时没有结果。

3 个答案:

答案 0 :(得分:15)

如果上下文是整个文档,您应该使用//而不是/。您也可以(不确定)需要再下一层来检索文本。

我认为它应该是这样的

//a/text()

编辑:正如Tomalak所指出的那样text()而不是text

答案 1 :(得分:3)

这还取决于文档的其余部分。如果您在开头使用//,则会返回所有匹配的节点,如果您的文档中有其他链接,则结果可能太多。

除此之外,可能的xpath表达式为//a/text()

您尝试的/a仅返回a - 标记本身,如果它是根元素。要获取链接文本,您需要附加/text()部分。

答案 2 :(得分:2)

你试过吗

//a

更具体更好:

//a[@class='bf' and starts-with(@href, '/book/')]

请注意,这会选择<a> 元素。在主机环境中,可以通过标准DOM方法(如.textContent属性)轻松提取该节点的文本值。

要选择实际的文本节点,请参阅此主题中的其他答案。