2012-11-29 35 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