如何创建xquery以选择节点名称以某些文本开头的节点值。例如文件
<doc>
<cpv1>Value1</cpv1>
<cpv2>Value2</cpv2>
<cpv3>Value3</cpv3>
<zzz>Hello world!</zzz>
</doc>
它应该得到Value1,Value2,Value3
答案 0 :(得分:3)
// doc / * [fn:starts-with(fn:local-name(),'cpv')] / text()
答案 1 :(得分:3)
因此,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())]
答案 2 :(得分:1)
这是一个xpath表达式,它给出了Value1,Value2,Value3: // * [substring(text(),1,5)=“Value”] / text()