html - 使用 XPath 获取带有内部链接的段落文本

标签 html xpath

我正在使用 XPath 解析 HTML 页面,并希望获取某些特定段落的整个文本,包括链接文本。

例如我有以下段落:

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

我需要得到以下文本作为结果:“This is sample paragraph with link inside”,但是应用 "//p[@class'main-content']/text()" 给出我只有“这是内部示例段落”。

你能帮忙吗?谢谢。

最佳答案

要获取节点的全部文本内容,请使用 string功能:

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

请注意,这会获取一个字符串值。如果您想要文本节点(由 text() 返回),您可以这样做。您需要深入搜索:

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

这将返回三个文本节点:This is sample paragraph withlinkinside。

关于html - 使用 XPath 获取带有内部链接的段落文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066461/

相关文章:

javascript - jQuery如何将一个元素的所有内容替换为另一个元素?

javascript - ng-click 不会触发,功能不起作用。可以是范围吗?

css - 有两个同名的类。如何在 Webdriver.IO 中使用 css/xpath 选择其中一个元素?

xpath - Sitecore xpath 查询不起作用

xpath - 使用xpath过滤掉具有特定id表达式的节点

xpath - 需要理解 - 为什么 CDATA 部分被视为 &lt;![CDATA[ 和 ]]>?

javascript - 在 HTML 中访问 SVG

javascript - 从 ng-template 访问范围

javascript - 如何使用 JS 为 Font Awesome 图标制作动画?

c# - 用于自动完成过滤器的 Xpath 和正则表达式