<Root>
<SomeElement>
...
<Wanted>.....</Wanted>
<UnWanted>
<Wanted>.....</Wanted>
</UnWanted>
<Wanted>.....</Wanted>
...
</SomeElement>
</Root>
我想选择任何级别的“Wanted
”内的“SomeElement
”元素,而不是“UnWanted
”元素的子元素。
使用XPath /Root/SomeElement//Wanted
我无法排除UnWanted
的孩子。
答案 0 :(得分:3)
你可以尝试
/Root/SomeElement//Wanted[not(ancestor::UnWanted)]
这将排除Wanted
元素的所有UnWanted
个元素,包括子元素,孙元素等(在任何级别)。如果您只想排除Wanted
直接子的UnWanted
元素(但仍包括孙子等等),请将ancestor::
更改为parent::
/Root/SomeElement//Wanted[not(parent::UnWanted)]