====== 在XML列中插入CDATA节的问题,找了很久无解 =====

愚者只看星不看答案 2012-07-27 09:23:08
表只有一列,列名col,XML数据类型
简单的insert tsql



insert into test(col) values('<root><![CDATA[ <a href="http://www.google.com">www.google.com</a> ]]></root>');


执行完成后,发现cdata节没有了。
在这里只是举例,实际中上述代码是用存储过程来实现,col的值由ado.net进行传递的。

找了很久都没有找到解决办法。。。。
将col的数据类型修改为nvarchar(max)这种方法就不要考虑了。。。
...全文
220 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用 9 楼 的回复:

引用 5 楼 的回复:

XML不解析,插入的时候是插入不进去的.

参考:
Sql Server 2005 Xml data type has CDATA removed on INSERT

Stored XML Data and the CDATA Tag

how to add CDATA tag to xml and what is ……
[/Quote]

用nvarchar(max)???

把一篇长文章的html放入?然后把所有的html返回到应用程序,再拆分出需要的部分??
你不觉得这样通过网络将大量的数据从sql server返回到应用程序没有必要吗?
稻庄 2012-07-28
  • 打赏
  • 举报
回复
能否考虑一下openxml?
筱筱澄 2012-07-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 5 楼 的回复:

XML不解析,插入的时候是插入不进去的.

参考:
Sql Server 2005 Xml data type has CDATA removed on INSERT

Stored XML Data and the CDATA Tag

how to add CDATA tag to xml and what is the use of it

……
[/Quote]

如果是放html 就没必要用xml 来存储了把
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

XML不解析,插入的时候是插入不进去的.

参考:
Sql Server 2005 Xml data type has CDATA removed on INSERT

Stored XML Data and the CDATA Tag

how to add CDATA tag to xml and what is the use of it

可以在得到数据的时候,……
[/Quote]

得到数据的时候,添加这个标签。。。
这个是没有意义的,cdata中本意是放置html的。而html是由文本编辑器中输入的。
如果输入的html不是标准的xhtml的话,插入xml列时就出错了。

如果是标准的xhtml,那我直接显示在浏览器中就可以了,就不需要人为的添加cdata了。
NET_2011 2012-07-28
  • 打赏
  • 举报
回复
如果指令设置为 CDATA,则不对包含的数据进行实体编码,而是将其放入 CDATA 部分。CDATA 属性必须没有名称。
叶子 2012-07-27
  • 打赏
  • 举报
回复
XML不解析,插入的时候是插入不进去的.

参考:
Sql Server 2005 Xml data type has CDATA removed on INSERT

Stored XML Data and the CDATA Tag

how to add CDATA tag to xml and what is the use of it

可以在得到数据的时候,添加这个标签,或是创建这个标签
参考:
SQL Server XML output with CDATA
筱筱澄 2012-07-27
  • 打赏
  • 举报
回复
百度了一下 也不是注释


CDATA部件

在CDATA内部的所有内容都会被解析器忽略。
如果文本包含了很多的"<"字符和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。
一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束:

http://www.cnblogs.com/qiantuwuliang/archive/2010/03/29/1699361.html
筱筱澄 2012-07-27
  • 打赏
  • 举报
回复
<![CDATA[

这个是注释的东东吧,把它去掉。
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

参考:
http://technet.microsoft.com/zh-CN/library/ms171758(v=sql.110)
[/Quote]

您试下就知道了。。。

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧