我有一些有时看起来像这样的XML:
<object>
<item>
<name>Item Name</name>
</item>
</object>
然后有时可能缺少Name元素并具有另一个名称:
<object>
<item>
<name/>
<altname>Item Name 2</altname>
</item>
</object>
我需要的逻辑是:
如果有值,请使用该值。如果没有,请使用。
我尝试调整在这里找到的内容:
XPath: Default to 'Node A', select 'Node B' instead if 'Node B' is not empty
但无济于事...有什么想法吗?
答案 0 :(得分:2)
使用XPath-2.0及更高版本,您可以使用
if (item/name !='') then item/name else item/altname
仅使用XPath-1.0会比较棘手,但这会起作用:
item/name[. !=''] | item/altname[../name ='']