gpt4 book ai didi

xquery-获取单个父元素中不为空的元素的计数

转载 作者:行者123 更新时间:2023-12-02 09:31:14 25 4
gpt4 key购买 nike

请考虑以下 XML--

<div id="test">
<p> Text sihdfaif</p>
<p />
<p> Text sihdfaif</p>
<p />
<p> Text sihdfaif</p>
<p> Text sihdfaif</p>
<p> Text sihdfaif</p>
</div>

现在,我想获取其中包含一些文本的 p 元素的数量。在本例中,该值=5(有 2 个“p”元素为空)

这是我想出的 XQuery--

    let $claims_main := $doc//div[@id="test"]
let $claims := $doc//div[@id="test"]/p
let $n := count($claims)
where $claims_main/p != ''
return $n

但是我从上面得到的结果是7,即包括空的“p”元素。

我想到的另一种选择是对所有“p”元素使用 for 循环,但在这种情况下,如何检索循环的元素总数?如果我在这种情况下使用 count,那么我只需得到 [1,1,1,1,1]- 即。每个 p 元素的计数(因为在 for 循环中,计数将针对每个“p”元素,而不是 div 本身)...

最佳答案

由于问题专门询问“p 其中包含一些文本的元素”, 以下是如何获取此类 p 的精确数量。元素:

count(/*/div/p[string(.)])

这会产生所有 p 的数量具有非空字符串值的元素,它们是 div 的子元素它是 XML 文档顶部元素的子元素。

此外,如果“非空”也意味着具有非纯空白字符串值:

count(/*/div/p[normalize-space(.)])

关于xquery-获取单个父元素中不为空的元素的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446312/

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