gpt4 book ai didi

xpath -//* 为什么不返回文档节点?

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

我试图理解以下示例

<?xml version="1.0" encoding="UTF-8"?>

<c>
<a>
<b att1="5">
<c/>
</b>
<d/>
</a>
<a att1="10">
<d>
<c/>
</d>
<b/>
</a>
</c>

现在我运行 XPath 查询
//*[c]

我认为它的意思是“所有节点都有一个 c 的子节点”。但是,这只会返回 <b><d>具有 <c> 的节点没有像我预期的那样返回 Document 节点。谁能解释为什么?

最佳答案

因为//*相当于 /descendant-or-self::node()/* .注意 self::node() 引用的文档节点在前面的 XPath 中,因此该 XPath 选择的最外层节点将是文档节点的子节点(由于 /* ),它是根元素 c , 没有直接子 c ,因此没有被选中。

你想要/descendant-or-self::node()[c]包含文档节点,相当于//.[c] ,见 the demo .

关于xpath -//* 为什么不返回文档节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586575/

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