gpt4 book ai didi

XPath 2.0 : how to select the current node - current() no longer available

转载 作者:行者123 更新时间:2023-12-03 16:01:45 28 4
gpt4 key购买 nike

在 XPath 1.0 中,有一个函数 current() 可以派上用场,当我根据我当时所在的节点引用 XML 中其他地方的节点时。我的 XML 具有如下结构:

<root>
<book>
<chapter>
<section>
<para>
<image id="1">1.png</image>
</para>
</section>
</chapter>
</book>
<objects>
<Object>
<ID>1</ID>
</Object>
</objects>
</root>

当我处理 book 中的 para 节点时,有时我会使用像这样的 XPath 表达式来查找对象节点中的信息:

Object[ID=current()/descendant::image[1]/@id]

当我将解析器切换到 XPath 2.0 时,此表达式会出错(当前函数不可用)。

我已经进行了一些搜索,但未能找到该功能的直接替代品。有吗?

最佳答案

current() 函数是在 XSLT 中定义的,而不是在 XPath 中定义的。它在 XSLT 1.0、2.0 和 3.0 样式表中的 XPath 表达式中可用,但在独立的 XPath 中不可用(在任何版本中,除了可能作为不一致的扩展)。

在 XPath 2.0 中有一个使用变量的解决方法:

Object[ID=current()/descendant::image[1]/@id]

成为

for $x in descendant::image[1]/@id return Object[ID=$x]

关于XPath 2.0 : how to select the current node - current() no longer available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42974966/

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