我有以下XML:
<activity>
<server>digmspt1p:1043SERVER1</server>
</activity>
我需要使用XQuery
提取字符串直到端口:
digmspt1p:1043
,这意味着在:
之后的第4位。
是否有实现这一目标的功能?
我发现只有functx:substring-before-last-match
,这只有在SERVER1不包含数字时才有用。
答案 0 :(得分:0)
let $a := <activity>
<server>digmspt1p:1043SERVER1</server>
</activity>
let $fir := substring-before($a/server, ":")
let $sec := substring(substring-after($a/server, ":"),1,4)
let $con := concat($fir, ":",$sec)
return $con
变量$fir
会将字符串存储在&#34;:&#34;之前,在您的情况下,它将是&#39; digmspt1p&#39;。
$sec
将首先获取&#34;:&#34;之后的字符串,然后使用substring()
它将根据需要剪切前4个字符。
最后,$con
将连接变量以获得所需的输出。
HTH。