gpt4 book ai didi

xml - 关于后代轴和“//”的困惑

转载 作者:行者123 更新时间:2023-12-03 17:00:22 24 4
gpt4 key购买 nike

文件结构:

<program>
<projectionDay>
<projection/>
<projection/>
</projectionDay>
<projectionDay>
<projection/>
<projection/>
</projectionDay>
</program>


我想选择第一个和最后一个投影(在整个文档中)。

返回它:

/descendant::projection[position() = 1 or position() = last()]


这将在projectionDay中返回第一个和最后一个

//projection[position() = 1 or position() = last()]


为什么呢?

最佳答案

使用descendant的第一个查询将获取所有<projection/>元素,然后为第一个和最后一个元素过滤此结果集:

/descendant::projection[position() = 1 or position() = last()]


///descendant-or-self::*/的缩写。所以您的第二个查询实际上意味着

/descendant-or-self::*/projection[position() = 1 or position() = last()]


它会查看所有元素(在这里:每个 <projectionDay/>,并返回该元素内的第一个和最后一个 <projection/>元素)。



要返回所有 <projeectionDay/>的第一个和最后一个元素,请将谓词之前的所有内容放入括号中:

(/descendant-or-self::*/projection)[position() = 1 or position() = last()]


或缩写:

(//projection)[position() = 1 or position() = last()]

关于xml - 关于后代轴和“//”的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16467491/

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