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>

Ответы на вопрос(1)

Ваш ответ на вопрос