我如何修复错误#1090:XML解析器失败:元素在Flex中是畸形的



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

错误#1090:XML解析器失败:元素是畸形的。

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

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

有办法解决这个问题吗?

我不知道该告诉你什么,你似乎还不知道。

XML标记中不能有空格,同时又符合XML。很多人会认为数据库的列名中也不应该有空格。

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

这里有几个选项:

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

最新更新