Sql server T-SQL XML解析:应为空白

Sql server T-SQL XML解析:应为空白,sql-server,Sql Server,我试图对SQL Server表中的列使用update语句,但收到以下错误消息: Msg 9410,第16级,状态1,第1行XML解析:第1行,字符18 应为空白 我试图插入的XML代码比这篇文章中的30k字符限制要长得多,但作为一个例子,我已经截断了它 T-SQL 这项工作: declare @x xml; set @x = '<code version="1.0" type="data"> &lt;data method=""BasicDynamicFormProduct

我试图对SQL Server表中的列使用update语句,但收到以下错误消息:

Msg 9410,第16级,状态1,第1行XML解析:第1行,字符18 应为空白

我试图插入的XML代码比这篇文章中的30k字符限制要长得多,但作为一个例子,我已经截断了它

T-SQL

这项工作:

declare @x xml;

set @x = '<code version="1.0" type="data">
&lt;data method=""BasicDynamicFormProduct"" version=""1.0""&gt;
  &lt;fields&gt;
    &lt;field&gt;
      &lt;textBox&gt;
        &lt;autoPostBack&gt;False&lt;/autoPostBack&gt;
        &lt;causesValidation&gt;False&lt;/causesValidation&gt;
        &lt;dataType&gt;Decimal&lt;/dataType&gt;
        &lt;id&gt;sacustomdimensions&lt;/id&gt;
        &lt;inputControlHeight&gt;&lt;/inputControlHeight&gt;
        &lt;inputControlWidth&gt;&lt;/inputControlWidth&gt;
        &lt;label&gt;
          &lt;locale en-US=""Custom Dimensions"" /&gt;
        &lt;/label&gt;

        Whatever you have here, everything works.
</code>';

select @x;
当然,我只删除了前面的双引号和/code标记中的额外双引号,并在最后关闭了它


您的XML字符串表示形式有很大的问题。

双引号似乎是问题的根源。CTRL+H with。不应在第一个开始代码标记之前使用双引号,也不应在该标记内添加额外的双引号。哦,它还没关。你从哪里得到这个无效的XML?这不是XML。看起来像是XML文档的XML编码。是的,我无法发布整个XML它确实有一个结尾,但我必须删除一半的XML,因为它太多了,不允许我发布
declare @x xml;

set @x = '<code version="1.0" type="data">
&lt;data method=""BasicDynamicFormProduct"" version=""1.0""&gt;
  &lt;fields&gt;
    &lt;field&gt;
      &lt;textBox&gt;
        &lt;autoPostBack&gt;False&lt;/autoPostBack&gt;
        &lt;causesValidation&gt;False&lt;/causesValidation&gt;
        &lt;dataType&gt;Decimal&lt;/dataType&gt;
        &lt;id&gt;sacustomdimensions&lt;/id&gt;
        &lt;inputControlHeight&gt;&lt;/inputControlHeight&gt;
        &lt;inputControlWidth&gt;&lt;/inputControlWidth&gt;
        &lt;label&gt;
          &lt;locale en-US=""Custom Dimensions"" /&gt;
        &lt;/label&gt;

        Whatever you have here, everything works.
</code>';

select @x;