【发布时间】:2015-04-22 17:49:34
【问题描述】:
我需要检索以下格式的 XML
<mv>
<v>!CDATA[[some_inner_xml_1]]</v>
<v>!CDATA[[some_inner_xml_2]]</v>
</mv>
我刚刚了解到<v /> 中的数据将是其他一些 XML。当我认为数据将是一个整数时,我写了这个并且它起作用了
select IdentifierText as 'v' from ipmruntime.RecordsToExport where BatchID = 5 for xml path(''), Root('mv')
我试图使用语法'v!cdata' - 它不喜欢它。我不知道在哪里贴CDATA
我尝试了另一种语法
SELECT
1 AS Tag,
null AS Parent,
IdentifierText as 'mv!1!v!cdata'
FROM ipmruntime.RecordsToExport
where BatchID = 5
FOR XML EXPLICIT, root('mv')
它几乎可以满足我的需要
<mv><mv><v><![CDATA[47f81be4-b54f-4703-840b-62b306c40842]]></v></mv><mv><v><![CDATA[3ba36a1f-bf75-4ed9-911e-26f10fba5587]]></v></mv></mv>
或者,如果我在同一个查询中使用'v!1',它会给我<mv><v></v><v></v></mv>,但是CDATA 去哪里了?
但这将每个<v> 包装成<mv>。显然,我不擅长 XML/SqlServer 组合...
【问题讨论】:
标签: sql-server xml stored-procedures cdata