2014-04-06 123 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])]