xpath для проверки наличия @ - PullRequest
0 голосов
/ 02 августа 2011

Я хочу написать xpath для проверки узла, содержащего '@'

<node1>
<node11>Some text</node11>
<node11>@2o11 PickMe</node12>
</node1>

Я хочу написать xpath наподобие "// node11 [contains (, '@ \ d +')]".Какой правильный способ проверки @

Ответы [ 3 ]

0 голосов
/ 02 августа 2011

Если вы используете xpath 2.0, вы можете использовать что-то вроде:

"//node11[matches(.,'@\d+')]"

Однако, если вы не используете 2.0, у вас не будет поддержки regex напрямую. Если вы используете 1.0, то вы не сможете сопоставить, используя \ d +. Но это будет работать:

"//node11[contains(.,'@')]"

Или даже:

"//node11[starts-with(.,'@')]"
0 голосов
/ 02 августа 2011

Использование :

/*/node11[contains(., '@')]

Примечание : рекомендуется избегать использования псевдооператора //, поскольку это чаще всего приводит к очень медленной оценкевыражения XPath.

0 голосов
/ 02 августа 2011

Правильное выражение XPath:

//node11[contains(., '@')]

В вашем XML закрывающий тег второй сноски должен быть </node11> вместо </node12>.

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