使用XPATH选择不同类型的节点或NULL值

时间:2016-01-28 09:08:00

标签: xml xpath

提供以下xml结构:

<root>
   <nodeA>
     <nodeB>Some text</nodeB>
   </nodeA>
   <nodeA>Some text</nodeA>
   <nodeA>
     <nodeB>Some other text</nodeB>
   </nodeA>
   ...
</root>

有没有办法选择&#34; nodeB&#34;节点或NULL值代替每个nodeA,因此对于上面的示例,它返回:

nodeB
NULL
nodeB

元素的顺序很重要。

谢谢!

1 个答案:

答案 0 :(得分:0)

在XPath 2.0中,您可以使用for循环和if语句,如下所示:

for $a in //nodeA 
return 
    if($a/nodeB) then $a/nodeB 
    else 'NULL'

在线测试here,并根据需要提供输入XML,输出结果符合要求:

Some text
NULL
Some other text