我有html文件的内容:
<a class="bf" title="Link to book" href="/book/229920/">book name</a>
帮助我构造xpath表达式以获取链接文本(书名)。
我尝试使用/a
,但表达式评估时没有结果。
答案 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
属性)轻松提取该节点的文本值。
要选择实际的文本节点,请参阅此主题中的其他答案。