如果第一个元素为空白,则选择第二个元素的XPath

时间:2018-10-20 13:52:10

标签: xml if-statement xpath nodes

我有一些有时看起来像这样的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

但无济于事...有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用XPath-2.0及更高版本,您可以使用

if (item/name !='') then item/name else item/altname

仅使用XPath-1.0会比较棘手,但这会起作用:

item/name[. !=''] | item/altname[../name ='']