У меня есть XML-документ вроде:
<data>
<item type="apple">
<misc>something</misc>
<appleValue>23</appleValue>
<misc2>something else</misc2>
</item>
<item type="banana">
<bananaValue>47</bananaValue>
<random>something</random>
</item>
</data>
Я могу получить элементы с doc("data.xml")/data/item
, но мне нужно получить текст из элементов, которые заканчиваются на Value
. Поэтому я хотел бы получить «23» и «47», но я не обязательно знаю имена элементов, то есть все, что я действительно знаю, это элементы, которые заканчиваются на Value
, я не знаю, если это appleValue
, bananaValue
и т. Д., За исключением того, что я мог посмотреть на атрибут type
и создать строку.
let $type := (doc("data.xml")/data/item)[1]/@type
doc("data.xml")/data/item/$typeValue
... Эта последняя строка - это то, к чему я стремлюсь, очевидно, это не правильно, но мне нужно найти элементы, чье имя известно на основе переменной (хранящейся в переменной, такой как $type
) и " Значение».
Есть идеи? Я понимаю, что присвоение имен переменным элементам странно / странно / плохо ... но так оно и есть, и я должен с этим справиться.