Значения узла Xquery, где узел начинается с того же текста
Как создать xquery для выбора значений узлов, где имя узла начинается с некоторого текста. например документ
<doc>
<cpv1>Value1</cpv1>
<cpv2>Value2</cpv2>
<cpv3>Value3</cpv3>
<zzz>Hello world!</zzz>
</doc>
Это должно получить Value1,Value2,Value3
3 ответа
Таким образом, узлы DocumentRequest содержат узлы Alias. Я выбираю все узлы Alias, которые начинаются с префикса val.
<ArrayOfDocumentRequest>
<DocumentRequest>
<Alias>
prefix1_OtherText
</Alias>
</DocumentRequest>
<DocumentRequest>
<Alias>
prefix2_OtherText
</Alias>
</DocumentRequest>
</ArrayOfDocumentRequest>
<F_PREFIXLIST>
<prefixes>
<p>prefix1</p>
<p>prefix2</p>
<p>prefix3</p>
</prefixes>
</F_PREFIXLIST>
for $i in /ArrayOfDocumentRequest
for $p in $F_PREFIXLIST/prefixes/p
return $i/DocumentRequest/Alias[fn:starts-with(text(), $p/text())]
Вот выражение xpath, которое дало вам Value1, Value2, Value3: //*[substring(text(), 1,5) ="Value"]/text()