Используя оператор & & в Xpath? - PullRequest
0 голосов
/ 28 мая 2010

У меня есть узел XML, который выглядит как <slot highcount="20" lowcount="10" />

Я пробовал следующее выражение xpath:

XmlNode node = xdoc.SelectSingleNode("slot[@lowcount>=12] && slot[@highcount <=12]");

но я получаю неверную ошибку токена, и у меня недостаточно опыта, чтобы понять, что я делаю неправильно. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 28 мая 2010

Вам необходимо использовать оператор «и» - в XPath нет оператора «&&». Я думаю, что-то вроде этого должно работать:

XmlNode node = xdoc.SelectSingleNode("slot[@lowcount>=12 and @highcount <=12]");

РЕДАКТИРОВАТЬ: это правильный синтаксис, но чтобы выбрать узел, указанный в вопросе, нам нужно переключаться между операторами, как второй фрагмент ниже. Я оставляю оригинальный пример кода для контекста, так что поток комментариев имеет смысл:

XmlNode node = xdoc.SelectSingleNode("slot[@lowcount<=12 and @highcount >=12]");
0 голосов
/ 28 мая 2010

XPath не использует && и ||; он использует and и or.

3.6 Логические выражения

A логическое выражение является либо и выражением , либо или выражением . Если логическое выражение не вызывает ошибку, его значение всегда является одним из логических значений true или false.

 [8]      OrExpr  ::= AndExpr ( "or" AndExpr )*
 [9]      AndExpr ::= ComparisonExpr ( "and" ComparisonExpr )*

Ссылки

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