У меня есть документ XML, который может содержать эквивалентные элементы, не являющиеся братьями и сестрами, в разных пространствах имен.Я хочу получить значение с наивысшим приоритетом из списка, который я предоставляю.
например,
<ns1:thing>
<ns1:info>
<ns1:title>Some title</ns1:title>
</ns1:info>
<ns2:metadata>
<ns2:mainTitle>Main title</ns2:mainTitle>
<ns2:altTitle>Alt title</ns2:altTitle>
</ns2:metadata>
...
Я хочу выбрать один из них и вывести его значение, но все эти элементыявляются необязательными, поэтому мне нужно будет просмотреть список и найти каждый из них, или, возможно, более похожий на XSLT, попытаться применить их последовательно и затем попробовать следующий, если элемент не может быть найден?Список приоритетов может быть, скажем, ns2:metadata/ns2:mainTitle
> ns1:info/ns1:title
> ns2:metadata/ns2:altTitle
> "Fallback"
, который, учитывая все необязательные элементы, как указано выше, приведет к:
<html:title>Main title</html:title>
Я могу толькоиспользуйте XSLT 1.0 (xsltproc
).