使用XPath获取带有链接的段落文本

6

我正在使用XPath解析HTML页面,想要获取某个特定段落的全部文本内容,包括链接的文本。

比如我有以下段落:

<p class="main-content">
    This is sample paragraph with <a href="http://google.com">link</a> inside.
</p>

我需要得到以下文本作为结果:“这是带有链接的示例段落”,但是应用"//p[@class'main-content']/text()"只会给出“这是带有内部链接的示例段落”。
请问您能否提供帮助?谢谢。

1
代码有问题 - 你没有关闭 href 属性引号。 - lonesomeday
1个回答

9

要获取节点的完整文本内容,请使用 string 函数:

string(//p[@class="main-content"])

请注意,这会获得一个字符串值。如果您想要文本节点(如text()返回的那样),可以这样做。您需要在所有深度搜索:
//p[@class="main-content"]//text()

这将返回三个文本节点:这是一个带有示例段落的链接内部。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接