gpt4 book ai didi

XPath 在任何文本节点中查找文本

转载 作者:行者123 更新时间:2023-12-03 07:48:31 24 4
gpt4 key购买 nike

我试图在文档中的任何文本节点中查找特定文本,到目前为止我的语句如下所示:

doc.xpath("//text() = 'Alliance Consulting'") do |node|
...
end

这显然行不通,有人能提出更好的替代方案吗?

最佳答案

此表达式 //text() = 'Alliance Consulting' 计算为 bool 值。

对于此测试示例:

<r>
<t>Alliance Consulting</t>
<s>
<p>Test string
<f>Alliance Consulting</f>
</p>
</s>
<z>
Alliance Consulting
<y>
Other string
</y>
</z>
</r>

它当然会返回true

您需要的表达式应计算为节点集,因此使用:

//text()[. = 'Alliance Consulting']

例如表达式:

count(//text()[normalize-space() = 'Alliance Consulting'])

针对上述文档将返回3

要选择整个字符串值中包含“Alliance Consulting”的文本节点(例如“Alliance Consulting提供优质服务”),请使用:

//text()[contains(.,'Alliance Consulting')]

请注意,在解析器到达文档后,相邻文本节点应该成为一个。

关于XPath 在任何文本节点中查找文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5074469/

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