【发布时间】:2017-02-06 22:50:46
【问题描述】:
我有一个类似于以下格式的 XML 文件:
<XML>
<Field1>100</Field1>
<Field2>200</Field2>
<Field3>300</Field3>
<Test>400</Test>
</XML>
我需要编写一个查询来获取所有以Field 开头的元素值。所以给定上面的 XML 结果应该是
FieldVal
--------
100
200
300
我尝试了以下方法,但它不起作用:
Select
xc.value('text()', 'int')
From
@XMLData.nodes('/XML/[starts-with(name(), ''Field'')]') As xt(xc)
注意:我很清楚,如果我重新格式化我的 XML,这项任务很容易完成,但不幸的是我无法控制 XML 的格式。
【问题讨论】:
-
如果要获取以
Field开头的值,您的预期输出如何包含400? -
@techspider 啊是的好点。那是我的一个错误。我更新了我的预期输出。
标签: sql sql-server xml tsql xquery-sql