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

Chr*_*ian 3 xml sql t-sql insert sql-server-2008

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

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>')
Run Code Online (Sandbox Code Playgroud)

但我一直收到这个错误:

消息9413,级别16,状态1,行4
XML解析:第1行,字符13,字符串文字是预期的

我做错了什么?

编辑: 我发现了错误的来源是XML元素的ID属性,<Profile ID=99>似乎是什么原因造成的错误.如何正确插入带属性的xml?我是否需要以某种方式逃脱其中一个角色?

Ric*_*iwi 10

XML文档本质上是文本的.这不是网页的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>')
Run Code Online (Sandbox Code Playgroud)

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

  • 我也注意到解析 XML 似乎比解析 XML 规范容易得多。;-) (2认同)