Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于从链接中选择文本的xpath表达式_Xpath - Fatal编程技术网

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

用于从链接中选择文本的xpath表达式,xpath,Xpath,我有这样的html文件内容: 帮助我构造xpath表达式以获取链接文本(书名)。 我尝试使用/a,但表达式的计算结果没有结果。如果上下文是整个文档,您可能应该使用/而不是/。此外,您可能(对此不确定)需要再下一层来检索文本 我想应该是这样的 //a/text() 编辑:正如托马拉克指出的那样,它是text()而不是text你试过了吗 //a ? 越具体越好: //a[@class='bf' and starts-with(@href, '/book/')] 请注意,这将选择元素。在主机环

我有这样的html文件内容:

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

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

我想应该是这样的

//a/text()
编辑:正如托马拉克指出的那样,它是
text()
而不是
text

你试过了吗

//a
?

越具体越好:

//a[@class='bf' and starts-with(@href, '/book/')]
请注意,这将选择
元素。在主机环境中,通过标准DOM方法(如
.textContent
属性)很容易提取该节点的文本值


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

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

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


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

下没有
元素。你的意思是
//a/text()
。你的回答帮助我更多,但没有以参数开头@亚历克斯:这只是一个“越具体越好”的例子;)