XPath для исключения определенных элементов XML?
Сейчас я прочитал много (может быть, все) постов об исключении элементов в XPath, и я просто не понимаю, как это работает. Понятия не имею почему.
Допустим, у меня есть следующая структура:
<root>
<elemA>
Hello World!
</elemA>
<elemB>
This is awesome!
<elemC>Really!</elemC>
</elemB>
</root>
Нет я хочу все элементы кромеelemC
.
Основываясь на том, что я прочитал, я попробовал следующий XPath:
Опция 1:
//*[not(self::elemC)]
Вариант 2:
//*[not(name()='elemC')]
Вариант 3:
//*[name()!='elemC']
Я понятия не имею, почему это не работает, но подозреваю какую-то глупую ошибку. Если я сделаю прямо противоположное (т.е. опускаяnot
или же!
) XPath правильно выбираетelemC
элемент.
Результат должен быть таким:
<root>
<elemA>
Hello World!
</elemA>
<elemB>
This is awesome!
</elemB>
</root>