XML解析错误:在将值插入表时,“预期字符串文字”

时间:2012-11-04 22:50:31

标签: sql xml sql-server-2008 tsql insert

在Microsoft SQL Server 2008中,我尝试将值插入到sql表中,其中 type_id为数据类型int xml_info为数据类型XML 。我使用以下查询:

INSERT INTO tbl_applied_devices ([type_id],[xml_info])
VALUES (1,'<Profile ID=99><Server><ID>BC4A18CA-AFB5-4268-BDA9-C990DAFE7783</ID>  <Name>localhost</Name><Services></Services></Server></Profile>')

但我一直收到这个错误:

  

Msg 9413,Level 16,State 1,Line 4
  XML解析:第1行,第13个字符,预期字符串文字

我做错了什么?

修改 我发现错误的来源是xml元素的ID属性,<Profile ID=99>似乎是导致错误的原因。如何正确插入带属性的xml?我是否需要以某种方式逃脱其中一个角色?

2 个答案:

答案 0 :(得分:9)

XML文档本质上是 text ual。这不是网页的HTML,因此您需要引号中的所有属性值(单引号或双引号)。

INSERT INTO tbl_applied_devices ([type_id],[xml_info])
VALUES (1,'<Profile ID="99"><Server><ID>BC4A18CA-AFB5-4268-BDA9-C990DAFE7783</ID>  <Name>localhost</Name><Services></Services></Server></Profile>')

解析XML 1.0 specifications非常困难,但这里是.Net 4.5的Microsoft版本,这与SQL Server XML相关。

答案 1 :(得分:3)

属性,ID是属性,必须引用。尝试ID =“99”