Упрощение выражения XPath - PullRequest
       1

Упрощение выражения XPath

1 голос
/ 06 октября 2011

Есть ли лучший способ проверить отсутствие атрибута, или его значение равно 0 или пусто?

В настоящее время я должен написать

//Comment[not(@ID) or @ID=0 or @ID='']

Но что-то более простое и менее подверженное ошибкам, если условие забыто, было бы идеально.

РЕДАКТИРОВАТЬ: Следующее все также работает

//Comment[not(not(@ID * 1) = 0)]

//Comment[not(@ID * 1 > 0)]

Ответы [ 2 ]

1 голос
/ 06 октября 2011
test="(number(@ID))"

может делать то, что вы хотите.Он вернет false, когда атрибут отсутствует, пуст или «0», но он также вернет false для некоторых других случаев, например ID="not-a-number".Вам нужно более точно указать ваши требования, например, как вы хотите обработать ID = "00" или ID = "0" (с пробелами).

0 голосов
/ 06 октября 2011

"Есть ли лучший способ ..."

Нет.

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