Использование not () в XPath - PullRequest
       10

Использование not () в XPath

20 голосов
/ 05 августа 2010

Я хотел бы, как правильно использовать "not" в XPath. Я просто не могу заставить его работать с атрибутами.

Скажем, у меня есть это выражение: //*[@name = 'Bob'] Это допустимо и вернет все узлы, у которых атрибут имени равен 'Bob'.

Теперь, если я хочу, чтобы все узлы с атрибутом имени не равнялись 'Bob', мне нужно использовать XPath, такой как: //*[@name not(='Bob')], но это недопустимо.

Я пробовал несколько комбинаций, но not () располагался в другом порядке, но я не могу заставить это работать. Может кто-нибудь, пожалуйста, сообщите мне, как правильно использовать ()?

Кроме того, меняется ли порядок при использовании элементов вместо атрибутов? Такие как: //name[text() = 'Bob']

Спасибо! :)

Ответы [ 3 ]

23 голосов
/ 05 августа 2010

Согласно: http://msdn.microsoft.com/en-us/library/ms256086.aspx, вы пробовали

//*[@name != 'Bob']
6 голосов
/ 05 августа 2010
//*[@name and @name != 'Bob']
5 голосов
/ 05 августа 2010

Попробуйте

 //*[@name != 'Bob']

или

  //*[not(@name = 'Bob')]

должны работать оба.

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