[英]XPath get parent element
I have an XPath related question. 我有一个与XPath相关的问题。 I have a list of XML entries like this: 我有这样的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>
The question is: how do I get all navigation entries that has a Field ParentNavigationEntry with the value 456. 问题是:如何获取具有值为456的Field ParentNavigationEntry的所有导航条目。
I tried //NavigationEntry//RelationEntry[ParentNavigationEntry="456"]
我尝试了//NavigationEntry//RelationEntry[ParentNavigationEntry="456"]
But this only gives me the RelationEntry Field, but I need the NavigationEntry Field. 但这只给了我RelationEntry字段,但是我需要NavigationEntry字段。
Is it possible to solve this with a single XPath query? 是否可以通过单个XPath查询解决此问题?
The question is: how do I get all navigation entries that has a Field ParentNavigationEntry with the value 456. 问题是:如何获取具有值为456的Field ParentNavigationEntry的所有导航条目。
//NavigationEntry[
/Relation
/RelationEntry
/ParentNavigationEntry = 456
]
Note: Select those NavigationEntry
elements and then filter predicate. 注意:选择那些NavigationEntry
元素,然后过滤谓词。 Also, when the schema is well known it's not good practice to use //
because it traverse the whole descendant tree even after a match. 同样,当模式众所周知时,也不是使用//
好习惯,因为即使经过匹配,它也会遍历整个后代树。
Add /ParentNavigationEntry to your XPath.. 将/ ParentNavigationEntry添加到您的XPath。
Example... 例...
//NavigationEntry//RelationEntry[ParentNavigationEntry="456"]//ParentNavigationEntry
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.