使用SQL Server2008,我有一个查询,它使用FOR XML发出结果集。现在它是一个不合规的片段。
如何将结果XML包装在一个封闭元素中,然后将一个简单的XML声明放在带有单个模式/名称空间引用的顶部,以使输出兼容?
谢谢。
发布于 2011-03-24 22:16:58
在SQL Server中,XML处理指令不能采用XML数据类型。
请参阅Limitations of the XML Data Type
这段代码
declare @XML xml =
'<?xml version="1.0"?>
<root>Value</root>'
select @XML
具有以下输出
<root>Value</root>
您可以使用适当的XML处理指令将XML构建为字符串。
declare @XML xml = '<root>Value</root>'
declare @XMLStr nvarchar(max) = '<?xml version="1.0"?>'
set @XMLStr = @XMLStr + cast(@XML as nvarchar(max))
select @XMLStr
输出
--------------------------------------------------------------------------
<?xml version="1.0"?><root>Value</root>
发布于 2011-03-24 18:17:52
将"WITH XMLNAMESPACES“添加到开头,并将根()添加到FOR XML子句:
WITH XMLNAMESPACES ( DEFAULT 'http://namespace_uri_here' )
SELECT *
FROM TABLE
FOR XML AUTO, ROOT('TopLevel')
https://stackoverflow.com/questions/5423560
复制相似问题