【问题标题】:SQL XML not returning dataSQL XML 不返回数据
【发布时间】:2011-11-22 14:53:40
【问题描述】:
我正在使用以下代码
它没有返回我的结果。我在这里错过了什么?
declare @iDoc INT
EXEC sp_xml_preparedocument @iDoc OUTPUT, '<Ids><Id Val ="40041">11</Id><Id Val ="40042">22</Id></Ids>'
Select @iDoc
Select Val FROM OPENXML (@iDoc, '/Ids/Id',2) WITH (Val varchar(10))
【问题讨论】:
标签:
sql-server
xml
openxml
【解决方案1】:
找到答案 - 将 '/Ids/Id',2 替换为 '/Ids/Id',5
【解决方案2】:
我更喜欢在查询的 WITH 部分使用 xpath。这样,您无需担心 OPENXML 函数的第三个参数。无论第三个参数如何(可以是任何值),以下代码都有效。
declare @iDoc INT
EXEC sp_xml_preparedocument @iDoc OUTPUT, '<Ids><Id Val ="40041">11</Id><Id Val ="40042">22</Id></Ids>'
Select *
FROM OPENXML (@iDoc, '/Ids/Id',2)
WITH (Val varchar(10) '@Val',
Id int '.')
EXEC sp_xml_removedocument @iDoc