SQL Server XmlType不保留CDATA元素

时间:2010-08-13 14:30:44

标签: xml sql-server-2005 cdata xmltype

我们正在使用SQL Server 2005,并且正在尝试在数据库中存储XML Type。 XML类型有一个元素需要包含CDATA中的内容,但是一旦插入,该字段似乎正在剥离CDATA并存储没有它的元素...

过去有没有人经历过甚至解决过这个问题?

方便的例子:

create table t (x xml)

insert into t values  ('<test>kjhghk</test>')
insert into t  values ('<test><![CDATA[kjhghk]]></test>')
select * from t

drop table t

结果:

<test>kjhghk</test>
<test>kjhghk</test>

1 个答案:

答案 0 :(得分:1)

不幸的是,这是剥离CDATA部分及其内容entitized的标准行为。您可以使用cdataFOR XML EXPLICIT指令在检索时将内容添加到CDATA部分,但根据XML的复杂程度,这可能是精简的。另请参阅此post