gpt4 book ai didi

xpath - 通过 XPath 提取节点之间的文本

转载 作者:行者123 更新时间:2023-12-03 15:30:52 28 4
gpt4 key购买 nike

我正在尝试通过 XPath 读取网页的特定部分。该页面的格式不是很好,但我无法更改...

<root>
<div class="textfield">
<div class="header">First item</div>
Here is the text of the <strong>first</strong> item.
<div class="header">Second item</div>
<span>Here is the text of the second item.</span>
<div class="header">Third item</div>
Here is the text of the third item.
</div>
<div class="textfield">
Footer text
</div>
</root>

我想提取各种项目的文本,即标题 div 之间的文本(例如“这是第一项的文本。”)。到目前为止,我已经使用了这个 XPath 表达式:
//text()[preceding::*[@class='header' and contains(text(),'First item')] and following::*[@class='header' and contains(text(),'Second item')]]

但是,我无法对结束项名称进行硬编码,因为在我想抓取的页面中,项目的顺序不同(例如,“第一项”可能后跟“第三项”)。

任何关于如何调整我的 XPath 查询的帮助将不胜感激。

最佳答案

找到了!

//text()[preceding::*[@class='header' and contains(text(),'First item')]][following::*[preceding::*[@class='header'][1][contains(text(),'First item')]]]

实际上,您的解决方案 Aleh 不适用于文本中的标签。

现在,剩下的一种情况是最后一项,它后面没有 class=header 的元素;所以它将包括找到的所有文本,直到文档结束。想法?

关于xpath - 通过 XPath 提取节点之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182587/

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