2012-11-29 149 views
1

我有以下文件:的XPath - 條件表達式

<Ships> 
    <Class name = "Kongo" > 
     <Ship name "Kongo" launched = "1913" /> 
     <Ship name = "Hiei" launched = "1914"/> 
     <Ship name = "Haruna" launched = "1915" /> 
    </Class> 
    <Class name = "North Carolina"> 
     <Ship name = "Washington" launched= "1941"/> 
    </Class> 
</Ships> 

我需要在其中找到同名的船舶作爲他們的階級是 推出了年。應該是

/Ships/Class/Ship[..]/@launched 

'...'部分已被省略,因爲它應該是一個條件,指定船名等於它的類名。有誰知道如何引用更高級別元素的屬性?查詢應該返回'1913'

+0

您可能想要更正一些XML格式 - 不少錯誤。 – Utkanos

+0

對不起,剛修復它 – zoe

+0

NP。儘管如此,還是有一些問題:) – Utkanos

回答

3
Ships/Class/Ship[@name = ../@name]/@launched 
+0

'// Ship [@name = ../@ name]/@ launch'是否等價? (至少在本文檔中,其中''在XML – PatrikAkerstrand

+0

其他地方不存在是的,但是任意生成算子//通常不被建議,因爲它在計算上是昂貴的。雖然它有其用途,但我不會建議它到OPs除非他們有充分的理由需要它。一個特定的XPath更好。 – Utkanos

+0

非常感謝Utkanos!我犯了很多錯誤.. – zoe