如何从数据库中检索包含 CDATA 的 XML
How to retrieve XML that contains CDATA, from Database
我需要按以下格式检索 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 组合...
你可以这样做:
select
1 as Tag,
null as Parent,
IdentifierText as [v!1!!CDATA] --[tag name!tag type!tag attribute!other optional setting]
from ipmruntime.RecordsToExport
where BatchID = 5
for xml explicit, root('mv')
我需要按以下格式检索 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 组合...
你可以这样做:
select
1 as Tag,
null as Parent,
IdentifierText as [v!1!!CDATA] --[tag name!tag type!tag attribute!other optional setting]
from ipmruntime.RecordsToExport
where BatchID = 5
for xml explicit, root('mv')