我有这棵树:
<Events>
<Properties>
<Property Descriptor=100>1378314022</Property>
<Property Descriptor=200>ABC1234</Property>
</Properties>
<Properties>
<Property Descriptor=100>1378314023</Property>
<Property Descriptor=200>ABC1234</Property>
</Properties>
<Properties>
<Property Descriptor=100>1378314024</Property>
<Property Descriptor=200>ABC1234</Property>
</Properties>
<Properties>
<Property Descriptor=100>1378314022</Property>
<Property Descriptor=200>123456</Property>
</Properties>
<Properties>
<Property Descriptor=100>1378314023</Property>
<Property Descriptor=200>123456</Property>
</Properties>
<Properties>
<Property Descriptor=100>1378314024</Property>
<Property Descriptor=200>123456</Property>
</Properties>
</Events>
如何选择没有重复项的<Descriptor=200>
值?例如,在这种情况下,我只需要选择ABC1234
和123456
一次。
更新:我需要在Events
级别进行迭代,然后选择不同的字符串。
答案 0 :(得分:0)
您想获得最后一个,还是没有重复的值?
没有重复的值:
distinct-values(//Property[@Descriptor=200])
最后一次
(//Property[@Descriptor=200])[last()]
(假设Descriptor是一个属性,你在发布xml时丢失了<Property
,因为你发布的文件不是有效的xml)
答案 1 :(得分:0)
使用此XPath,它会选择不同的值:
//Property[@Descriptor = 200]
[not(. = ../following-sibling::Properties/Property[@Descriptor = 200])]