У меня есть какой-то XML, который иногда выглядит так:
<object> <item> <name>Item Name</name> </item> </object>
А иногда может отсутствовать элемент Name и иметь другое имя:
<object> <item> <name/> <altname>Item Name 2</altname> </item> </object>
Логика, которая мне нужнаis:
Если имеет значение, используйте его.Если это не так, используйте.
Я попытался адаптировать то, что нашел здесь:
XPath: По умолчанию установлено значение «Узел A», вместо этого выберите «Узел B», если «Узел B».'не пусто
Но безрезультатно ... есть идеи?
С XPath-2.0 и выше вы можете сделать это с
if (item/name !='') then item/name else item/altname
Только с XPath-1.0 это немного сложнее, но это будет работать:
item/name[. !=''] | item/altname[../name ='']