XML: <A><B></B></A> or <A></A>
I want to get all A nodes that do not have any B children.
I’ve tried
/A[not(B)]
/A[not(exists(B))]
without success
I prefer a solution with the syntax /*[local-name()="A" and .... ], if possible. Any ideas that works?
Clarification. The xml looks like:
<WhatEver>
<A>
<B></B>
</A>
</WhatEver>
or
<WhatEver>
<A></A>
</WhatEver>
Maybe
*[local-name() = 'A' and not(descendant::*[local-name() = 'B'])]?Also, there should be only one root element, so for
/A[...]you’re either getting all your XML back or none. Maybe//A[not(B)]or/*/A[not(B)]?I don’t really understand why
/A[not(B)]doesn’t work for you.