Выражение XPath возвращает узлы, когда не должно - PullRequest
0 голосов
/ 23 января 2019

Предположим, у меня есть следующая структура:

<parent>
  <child></child>
</parent>

Если я на узле <child>, я ожидаю, что следующий XPath вернет пустой:

./parent::*[not(parent)]

Однако в наборе результатов, который я получаю, перечислены родительские элементы дочернего элемента.Почему?

1 Ответ

0 голосов
/ 23 января 2019

Выражение not(parent) проверяет, является ли узел parent пустым элементом.
В вашем случае это не так, поскольку он содержит узел child.

Выражение, которое выищет, вероятно, not(self::parent), который проверяет, не является ли сам узел узлом parent.Таким образом, все выражение, вероятно, должно быть

parent::*[not(self::parent)]

Я удалил ось ./, потому что в этом случае это не было необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...