gpt4 book ai didi

XPath/XQuery : find text in a node, 但忽略特定后代元素的内容

转载 作者:行者123 更新时间:2023-12-03 15:23:01 25 4
gpt4 key购买 nike

我试图找到一种在节点内搜索字符串的方法,但不包括这些节点的某些子元素的内容。简单明了,我想在文本的段落中搜索字符串,不包括作为段落子元素的脚注。

例如,

我的文件是:

<document>
<p n="1">My text starts here/</p>
<p n="2">Then it goes on there<footnote>It's not a very long text!</footnote></p>
</document>

当我搜索“文本”时,我想要 Xpath / XQuery检索第一个 p 元素,而不是第二个(其中“文本”仅包含在脚注子元素中)。

我试过 contains()函数,但它检索两个 p 元素。

任何帮助将不胜感激:)

最佳答案

I want to search for a string in paragraphs of a text, excluding the footnotes which are children elements of the paragraphs



XPath 1.0 - 唯一的解决方案:

使用 :
//p//text()[not(ancestor::footnote) and contains(.,'text')]

针对以下 XML 文档 (从您那里获得,但在 p 中添加了 footnote 以使其更有趣):
<document>
<p n="1">My text starts here/</p>
<p n="2">Then it goes on there
<footnote>It's not a very long text!
<p>text</p>
</footnote>
</p>
</document>

这个 XPath 表达式精确地选择了想要的文本节点 :
My text starts here/

关于XPath/XQuery : find text in a node, 但忽略特定后代元素的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735453/

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