2014-04-06 119 views
0
的最后一次出现

我有这棵树:的XPath - 选择字符串

<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>值?例如在这种情况下,我只需要选择ABC1234123456一次。

更新:我需要迭代在Events级别,然后选择不同的字符串。

+0

你想在SQL Server或其他东西中实现这个结果? –

回答

0

你想得到最后一个或没有重复的值吗?

对于没有重复值:

distinct-values(//Property[@Descriptor=200]) 

在过去

(//Property[@Descriptor=200])[last()] 

(假设描述符是一个属性,而你失去了<Property发布的XML时开始,因为您发布的文件不是有效的xml)

+0

XML已修复。对不起,这个错误。它没有工作,因为我试图在事件级别进行迭代,所以我假设我需要在选择它们之前找到不同字符串的数量。我会将其添加到问题描述中。道歉。 –

0

使用此XPath,它选择不同的值:

//Property[@Descriptor = 200] 
    [not(. = ../following-sibling::Properties/Property[@Descriptor = 200])]