gpt4 book ai didi

html - 如何使用 XPath 在另一个子元素之后选择子文本

转载 作者:数据小太阳 更新时间:2023-10-29 02:34:09 25 4
gpt4 key购买 nike

我正在使用 Crawler 库帮助您制作一些 XPath 表达式来获取 HTML 标记的内容。我目前正在从页面读取 HTML5 内容,我想检索未以这种方式插入到标记中的文本。

<div class="country">
<strong> USA </strong>
Some text here
</div>

所以我试图获取此文本此处有一些文本,但爬虫库允许获取标签中的内容,而不是标签外的内容。

所以请有任何替代方案。

这些是爬虫部分:

$crawler = new Crawler();
$crawler->xpathSingle($xml, '//div[@class="country"]/strong/@text');

最佳答案

这些 XPath 中的任何一个都将按要求返回 "Some text here":

  • normalize-space(substring-after(//div[@class="country"], 'USA'))

  • normalize-space(//div[@class="country"]/strong/following-sibling::text())

根据您希望适应的变化类型进行选择。

来源:第二个示例源自于 comment 中首次提出的建议通过 @Keith Hall .


更新:

正如我提到的,您需要根据您希望适应的变体来选择您的 XPath。我一发帖你就遇到了一个变体:

<div class="country">
<strong> USA </strong>
Some text here
<i>Do not want this text</i>
</div>

您可以使用上面的第二个 XPath 排除 “不想要此文本” 并返回 “Some text here”,但只需获取以下第一个文本节点:

  • normalize-space(//div[@class="country"]/strong/following-sibling::text()[1])

关于html - 如何使用 XPath 在另一个子元素之后选择子文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36333549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com