如何比较xpath中的元素位置
我试图比较客户帐户值,以仅显示不同的值,并忽略XPath中的重复值: XML代码:如何比较xpath中的元素位置,xpath,Xpath,我试图比较客户帐户值,以仅显示不同的值,并忽略XPath中的重复值: XML代码: <info> <Customer CustAccount="1"/> <Customer CustAccount="2"/> <Customer CustAccount="2"/> <Customer CustAccount="3"/> </info> 可以通过XPath-2.0表达式实现这一点 for $c in di
<info>
<Customer CustAccount="1"/>
<Customer CustAccount="2"/>
<Customer CustAccount="2"/>
<Customer CustAccount="3"/>
</info>
可以通过XPath-2.0表达式实现这一点
for $c in distinct-values(/info/Customer/@CustAccount) return concat('customer ',$c,'
')
输出为:
customer 1
customer 2
customer 3
如果不喜欢换行符,请删除
代码>来自表达式。
没有纯XPath-1.0表达式可以实现这一点;只有在XPath-2.0不可用的情况下,才能使用XSLT-1.0执行此操作。这是纯XPath 1.0解决方案
示例xml:
<root >
<info>
<Customer CustAccount="1"/>
<Customer CustAccount="2"/>
<Customer CustAccount="2"/>
<Customer CustAccount="3"/>
</info>
</root>
证据:
您的XML格式不正确。请修复并阅读。请让我知道它是如何运行的。这将类似于xpath 2.0中的distinct,因此您不必担心是否有客户在其他地方拥有匹配的custAccount。
<root >
<info>
<Customer CustAccount="1"/>
<Customer CustAccount="2"/>
<Customer CustAccount="2"/>
<Customer CustAccount="3"/>
</info>
</root>
/root/info/Customer[not(./@CustAccount=preceding::Customer/@CustAccount)]