gpt4 book ai didi

xpath - 如何在 XPath 1.0 中执行集合操作

转载 作者:行者123 更新时间:2023-12-03 15:23:03 26 4
gpt4 key购买 nike

我已经在 SO 和其他地方看到以下内容应该可以工作(这个例子直接来自 O'Reilly 的 XSLT Cookbook):

(: intersection :)
$set1[count(. | $set2) = count($set2)]

(: difference :)
$set1[count(. | $set2) != count($set2)]

看起来应该没问题,但是当与实际路径而不是变量一起使用时,这似乎失败了。例如,给定以下文档
<a>
<new>
<val>1</val>
<val>2</val>
</new>
<old>
<val>2</val>
<val>3</val>
</old>
</a>

和 XPath 表达式 /a/new/val[count(. | /a/old/val)=count(/a/old/val)]/text()我希望得到节点集 { 2 }而是得到 { 1 2 } .任何想法我做错了什么?

最佳答案

节点集交集的公式使用节点身份,而不是值身份。

两个节点相同当且仅当 count($n1|$n2) =1
但是,您希望基于值标识相交。

解决方案 :

使用 :

/a/new/val[. = /a/old/val]

这将选择任何 /a/new/val至少存在一个 /a/old/val元素,使得这两个元素的字符串值相同。

关于xpath - 如何在 XPath 1.0 中执行集合操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7178471/

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