Инструкция Xquery для получения значения для определенного имени

Я пытаюсь написать xquery, чтобы получить значение для определенного имени. Ниже приводится полезная нагрузка запроса: т.е., если Name ="ID", то получить "значение" для этого тега (т.е.1000000000.) Если имя = "пользователь" получить "Значение" для этого тега (т. е. "США").

 <not:Items xmlns:v5="http://www.example.com"
xmlns:com="http://commom.com
xmlns:not="http://services.not.com"
xmlns:com1="http://common1.com">
<not:Array>
<com1:Item>
<v5:List>
<com:extensionsItem>
<com:Name>ID</com:Name>
<com:Value>1000000000</com:Value>
</com:extensionsItem>
<com:extensionsItem>
<com:Name>User</com:Name>
<com:Value>US</com:Value>
</com:extensionsItem>
</v5:List>
</com1:Item>
</not:Array>
</not:Items> 

Я попробовал варианты ниже:

<ns2:ID>{fn:data($Items/not:Array/com1:Item/v5:List/com:extensionsItem[1]/com:Value)}<ID>

Это утверждение работает. Но я не могу гарантировать, что ID всегда будет первым элементом в массиве List.Так я хочу оператор, который будет работать, даже если ID входит в любое другое место в массиве, и я могу получить значение. заранее спасибо

1 ответ

Решение

Я думаю, что вы просто хотите применить предикат $Items/not:Array/com1:Item/v5:List/com:extensionsItem[com:Name = 'ID']/com:Value

Другие вопросы по тегам