【发布时间】:2011-01-28 21:32:21
【问题描述】:
我们有一个 JAVA 应用程序,它从 SAP 中提取数据,对其进行解析并呈现给用户。 使用 JCO 连接器提取数据。
最近我们被抛出了一个异常:
org.xml.sax.SAXParseException: Character reference "�" is an invalid XML character.
因此,我们计划编写一个新的间接级别,在解析 XML 之前替换所有特殊/非法字符。
我的问题是:
- 是否有任何现有的(开源)实用程序可以完成这项工作以替换 XML 中的非法字符?
- 或者如果我必须编写这样的实用程序,我应该如何处理它们?
- 为什么会抛出上述异常?
谢谢。
【问题讨论】:
-
那么来自 JCO 的数据是 XML 格式吗?您正在解析它吗?或者您是在获取名称或其他内容,然后将其写入 XML 文档,然后进行解析?
-
@Tom:JCO 有 Record.toXML() 方法,以 XML 格式提供数据。
-
只是出于好奇 - 是否有特殊原因导致您经历了将数据转换为 XML 然后再返回的所有痛苦和 CPU 周期?
-
@vwegert:好问题。让我承认我们不知道迭代 JCO.Fields 的 JCO API,并认为 toXML() 可能只是我们的工作。
-
...好的。我真的不知道该说什么。抱歉,JCo 附带 API 文档、示例程序和 PDF 教程。有人没有阅读并理解如何使用它,而是认为“让我们在其中添加一些 XML”。真的不知道该笑还是该哭……
标签: java parsing sap sax xml-parsing