gpt4 book ai didi

xpath - XPath查询帮助(计数)

转载 作者:行者123 更新时间:2023-12-03 16:21:57 25 4
gpt4 key购买 nike

我想计算某个节点的所有后代或自身节点,但仅计算低于某个级别(从0开始)的所有后代。您有什么建议吗?

基本上看起来像这样:

count(//fstructure/node()) + count(//fstructure/node()/node()) + count(//fstructure/node()/node()/node()) + 1


适用于3个级别和(元素)节点“ fstructure”,即使它不是很好,但我只需要它进行调试。

最好的祝福,
约翰尼斯

最佳答案

此XPath表达式:

   count(
ExprForYourNode//*
[not(count(ancestor::* )
>
count(ExprForYourNode/ancestor::*) + 2
)
]
)


从表达式 ExprForYourNode选择的元素中选择最大深度为2(从零开始)的所有后代或自身元素

如果要选择所有后代或自身节点(元素,文本节点,注释节点和处理指令节点),请使用:

   count(
ExprForYourNode//node()
[not(count(ancestor::* )
>
count(ExprForYourNode/ancestor::*) + 2
)
]
)


例如与此文档:

<t>
<a>
<b>
<c>
<d/>
</c>
</b>
</a>
</t>


这个表达式:

   count(
/*/a//*
[not(count(ancestor::* )
>
count(/*/a/ancestor::*) + 2
)
]
)


产生:

2


这是元素的数量( bc,但不是 d),它们是 a的后代,相对深度为 a 2或更小。

同样,此表达式的评估:

   count(
/*/a//node()
[not(count(ancestor::* )
>
count(/*/a/ancestor::*) + 2
)
]
)


产生:

6


这是元素的数量(如前所述)加上(相对于元素 a的最深为2的(仅空白)文本节点的数量)

关于xpath - XPath查询帮助(计数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7283356/

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