提供以下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
元素的顺序很重要。
谢谢!
答案 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