Xpath XQuery-从匹配给定模式的父节点获取节点
我想根据给定的模式筛选XML节点的子节点 我的XMLXpath XQuery-从匹配给定模式的父节点获取节点,xpath,xquery,Xpath,Xquery,我想根据给定的模式筛选XML节点的子节点 我的XML <parent> <total1>10</total1> <total2>15</total2> <value1>1</value1> <value2>2</value2> </parent> 预期结果 <parent> <total1>10</total1> &
<parent>
<total1>10</total1>
<total2>15</total2>
<value1>1</value1>
<value2>2</value2>
</parent>
预期结果
<parent>
<total1>10</total1>
<total2>15</total2>
</parent>
另外,我希望能够在输出中显示类似的内容
<total1>number(10)</total1>
<total2>number(15)</total2>
编号(10)
数字(15)
在输出中,将节点值从字符串转换为数字<代码>编号(10)来自
编号(text())
两个小更正:
- 您需要检查元素的名称;否则,将检查元素的字符串值是否以给定的子字符串开头
需要报价;否则,它将被视为XPath表达式总计
for $n in //parent/*[starts-with(name(), 'total')]
return $n
谢谢是否可以在输出中分隔名称和值?我想将
number(text())
显示为节点值这一切都可以通过XQuery实现;但我建议您为此打开一个新的StackOverflow问题,或者(甚至更好)先浏览其他用户的答案。我没有在上面找到完整的答案,因此,我将打开一个新问题可能是“…我希望能够在输出中显示数字(text())”的副本。那么返回$n/number(text())有什么问题吗
?这是因为我想保留节点名称(我将更新我的问题)返回($n/name(),$n/number(text())
?
<total1>number(10)</total1>
<total2>number(15)</total2>
for $n in //parent/*[starts-with(name(), 'total')]
return $n