如何创建 xquery 以选择节点名称以某些文本开头的节点值。例如文档
<doc>
<cpv1>Value1</cpv1>
<cpv2>Value2</cpv2>
<cpv3>Value3</cpv3>
<zzz>Hello world!</zzz>
</doc>
它应该得到 Value1,Value2,Value3
如何创建 xquery 以选择节点名称以某些文本开头的节点值。例如文档
<doc>
<cpv1>Value1</cpv1>
<cpv2>Value2</cpv2>
<cpv3>Value3</cpv3>
<zzz>Hello world!</zzz>
</doc>
它应该得到 Value1,Value2,Value3
所以 DocumentRequest 节点包含 Alias 节点。我选择所有以前缀 val 开头的 Alias 节点。
<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())]
//doc/*[fn:starts-with(fn:local-name(), 'cpv')]/text()
这是一个 xpath 表达式,它为您提供了 Value1、Value2、Value3: //*[substring(text(), 1,5) ="Value"]/text()