Ответ 1
/a/*[not(self::b)]
<a>
<b/>
<c/>
<d/>
<b/>
<e/>
</a>
Как выбрать те дети из "a", которые не являются "b"?
/a/*[not(self::b)]
С XPath 2.0 вы даже можете сделать
/a/(* except b)
Xpath будет выглядеть:
a/*[name(.) !='b']
Итак, выберите дочерние элементы 'a', имя которого не равно 'b'