我有一个与XPath相关的问题。我有一个这样的XML条目列表:
<NavigationEntry>
<BaseData>
<Name>Entry Name</Name>
</BaseData>
<Relation>
<RelationEntry isDefault="0">
<ParentNavigationEntry>456</ParentNavigationEntry>
<Order>200</Order>
</RelationEntry>
</Relation>
<NavigationEntry>
<BaseData>
<Name>Entry Name</Name>
</BaseData>
<Relation>
<RelationEntry isDefault="0">
<ParentNavigationEntry>123</ParentNavigationEntry>
<Order>200</Order>
</RelationEntry>
</Relation>
问题是:如何获得具有值为456的Field ParentNavigationEntry的所有导航条目。
我试过了
//NavigationEntry//RelationEntry[ParentNavigationEntry="456"]
但是这只给了我RelationEntry字段,但我需要NavigationEntry字段。
是否可以使用单个XPath查询解决此问题?
答案 0 :(得分:6)
问题是:我如何得到所有 具有Field的导航条目 ParentNavigationEntry带有值 456。
//NavigationEntry[
/Relation
/RelationEntry
/ParentNavigationEntry = 456
]
注意:选择那些NavigationEntry
元素,然后过滤谓词。此外,当模式众所周知时,使用//
并不是一个好习惯,因为它甚至在匹配后遍历整个后代树。
答案 1 :(得分:0)
将/NanNavigationEntry添加到XPath ..
示例...
//NavigationEntry//RelationEntry[ParentNavigationEntry="456"]//ParentNavigationEntry