gpt4 book ai didi

xquery - 我怎样才能得到cts :values for elements with special attribute value

转载 作者:行者123 更新时间:2023-12-01 15:20:54 26 4
gpt4 key购买 nike

我有一个文件

    <document>
<category selected="true">a</category>
<category>b</category>
<category selected="true">c</category>
</document>

我怎样才能只从类别[@selected eq 'true'] 中获取值?我正在尝试使用下一个:

    cts:element-values(xs:QName("category"), (), (), cts:element-attribute-value-query(xs:QName("category"), xs:QName("selected"), "true"))

但我知道在这种情况下我将获得所有类别。

最佳答案

您的 cts:element-attribute-value-query() 匹配所有具有 category 元素且 selected 属性为。然后,您的 cts:element-values() 返回每个文档中 所有 category 元素的不同值,无论是否类别有一个 @selected = 'true' 属性。

您可能想从许多(也许是数亿)文档中获取值,这些文档具有相似的结构,而不仅仅是这个。对于一个文档,XPath 就可以了。然而,在整个数据库中,您需要一个范围索引来高效地执行此操作。范围索引,顾名思义,在内存中保存一组有序的值和对文档的引用。这使得获取不同的值或跨值范围的计算变得非常高效。

通过范围索引,您可以使用 cts:values()直接从索引中获取值,而不必自己阅读文档。鉴于您的文档结构,您需要一个 path range index将选定的类别与未选定的类别区分开来。因此,您将在 category[@selected = 'true'] 上创建路径范围索引,然后调用 cts:values(cts:path-reference("category[@selected = 'true ']"))cts:values() 也可以将 cts:query 作为其第四个参数来限制匹配值的文档域。

关于xquery - 我怎样才能得到cts :values for elements with special attribute value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35569231/

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