节点的XPath测试存在并包含一个数字

时间:2015-03-03 08:44:05

标签: xml xpath xquery domxpath xquery-sql

我需要XPath或XQuery中的条件来确定product是否有节点Id以及该节点是否有数字。

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

1 个答案:

答案 0 :(得分:2)

假设您的实际XML格式正确,只有一个根元素......

您已正确注册ns34前缀的命名空间...

您以某种方式选择了所需的Product(您的问题中未给出任何条件)并将其绑定到变量$p ... < / p>

此表达式将测试$p是否具有ns34:Id子元素:

$p/ns34:Id

此表达式将测试它是否为数字:

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

此表达式将选择那些ns34:Id子元素为数字的产品:

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