2015-03-03 2 views
-2

Мне нужно условие в XPath или XQuery, чтобы определить, имеет ли product узел Id, и если этот узел имеет номер.Тест XPath для узла существует и содержит число

<ns34:Product> 
    <ns34:Id>100</ns34:Id> 
</ns34:Product> 
<ns34:Product> 
    <ns34:Id>104</ns34:Id> 
</ns34:Product> 
+2

Отправьте свой проверенный код с полным входным XML и ожидаемым результатом. –

ответ

2

Предполагая, что ваш фактический XML хорошо сформированы с одним корневым элементом ...

И, что вы правильно зарегистрировали пространство имен для префикса ns34 ...

И что вы как-то выбрали нужный Product (в вашем вопросе не было задано критериев) и связали его с переменной, $p ...

Это выражение будет проверить, имеет ли $p на ns34:Id дочерний элемент:

$p/ns34:Id 

И это выражение будет проверить, является ли это число:

number($p/ns34:Id) = $p/ns34:Id 

И это выражение будет выбирать те продукты, которые имеют дочерний элемент ns34:Id, который представляет собой число:

//ns34:Product[number(ns34:Id) = ns34:Id]