0

我使用 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>

有没有办法解决这个问题?

4

1 回答 1

1

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

您不能在 XML 标记中包含空格并且仍然符合 XML。许多人会争辩说,数据库也不应该在列名中包含空格。

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

这里有几个选项:

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