如何修复错误#1090:XML解析器失败:Flex中的元素格式错误?

时间:2013-05-21 21:34:16

标签: actionscript-3 flex flash-builder

我使用HTTPService向Web服务发送请求。 Web服务在SQL Server中运行查询,并以XML格式返回行集f数据。只要结果集中任何列的标题中没有空白,服务就可以正常工作。但是,如果列名称中有任何空格(空白)(如“客户名称”),则会遇到以下错误:

  

错误#1090:XML解析器失败:元素格式错误。

在FireFox中使用HTTPFox插件,我可以看到检索到的记录如下所示。我认为这个问题是服务检索的XML标签中的空白。

    <record>
            <Year><![CDATA[2009]]></Year>
            <Owner><![CDATA[BLM]]></Owner>
            <Customer Name><![CDATA[Smith Naval]]></Customer Name>
    </record>

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我不知道该怎么说你似乎还不知道。

您不能在XML标记中包含空格,并且仍然符合XML标准。许多人认为数据库中的列名也不应该有空格。

如果可能,我会用下划线替换数据库列中的空格。如果那是不可能的,我会在创建XML时执行一些服务器端处理,以便空格不会出现在XML标记名称中。

以下是一些选项:

  1. 使用每个字母命名标记,但不包括列名称的第一个空格
  2. 生成XML时删除标记名称中的空格。
  3. 将返回的值作为文本处理。对我来说这听起来很困难;但如果你正在使用正则表达式可能是可能的。