<Root>
<SomeElement>
...
<Wanted>.....</Wanted>
<UnWanted>
<Wanted>.....</Wanted>
</UnWanted>
<Wanted>.....</Wanted>
...
</SomeElement>
</Root>
Run Code Online (Sandbox Code Playgroud)
我想在任何级别选择" Wanted"元素,SomeElement而不是UnWanted"元素"的子元素.
使用XPath,/Root/SomeElement//Wanted我无法排除孩子的UnWanted.
你可以尝试
/Root/SomeElement//Wanted[not(ancestor::UnWanted)]
Run Code Online (Sandbox Code Playgroud)
这将排除Wanted元素的子元素、孙元素等(任何级别)的所有UnWanted元素。如果您只想排除直接子元素Wanted(但仍包括孙子元素等),则更改为UnWantedancestor::parent::
/Root/SomeElement//Wanted[not(parent::UnWanted)]
Run Code Online (Sandbox Code Playgroud)