我想根据给定的模式过滤XML节点的子节点。
我的XML
<parent>
<total1>10</total1>
<total2>15</total2>
<value1>1</value1>
<value2>2</value2>
</parent>
与该给定模式匹配的过滤器节点
total*
预期结果
<parent>
<total1>10</total1>
<total2>15</total2>
</parent>
我尝试使用此xQuery,但它不起作用。我不知道什么是最好的解决方法
for $n in //parent/*[starts-with(.,total)]
return $n
此外,我希望能够在输出中显示类似的内容
<total1>number(10)</total1>
<total2>number(15)</total2>
输出中的,用于将节点值从字符串转换为数字。 number(10)
来自number(text())
答案 0 :(得分:2)
两个小更正:
total
需要加引号;否则,它将被视为XPath表达式。这是结果:
for $n in //parent/*[starts-with(name(), 'total')]
return $n