java - 当“在 XML 中使用时 SAXParseException

标签 java xml xml-parsing sax

我收到“org.xml.sax.SAXParseException;lineNumber:4;columnNumber:26;实体“ldquo”已被引用,但未声明。”读取 XML 文档时出现异常。我的阅读方式如下:

                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = factory.newDocumentBuilder();
                InputSource is = new InputSource(new StringReader(xmlBody));
                Document document = builder.parse(is);

然后 builder.parse(is); 出现异常。 通过搜索,我发现有必要在外部声明其中一些新实体,不幸的是,我无法修改原始 XML 文档。

如何解决这个问题?

谢谢

最佳答案

From searching I figured that it is necessary to declare some of those new entities externally, unfortunately, I cannot modify the original XML document.

好吧,除非您声明该实体,否则该文档就不是 XML,并且您将无法使用 XML 解析器来处理它。

当您被要求处理不是格式良好的 XML 的输入时,最好的方法是修复创建文档的过程(使用 XML 进行交换的整个想法依赖于它是格式良好的 XML)。另一种选择是“修复”文档,将其转换为格式良好的 XML(您说您做不到),或者忘记它本来就是 ​​XML 的事实,并像处理任何专有的非 XML 文档一样对待它。 -XML格式。

这不是一组令人愉快的选择 - 但这就是当人们口头上支持 XML 但未能遵守标准的字面意思时所陷入的困惑。

关于java - 当“在 XML 中使用时 SAXParseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760034/

相关文章:

xml - 创建 XSL 样式表来管理 FileMaker Pro XML 输出

javascript - 如何使用填充的输入值获取当前网站的html源

java - 使用 Jackson 将 XML 反序列化为 Java 对象

java - Veracode XML 外部实体引用 (XXE) 解码 org.w3c.dom.Element

xml - XML 标记中的句点

python - 无法解析 XML 响应并获取元素

java - 文件中的二维字符数组

java - 一次性密码安全风险

java - Spring Boot 自动配置无法与 spring-data-jpa 一起正常工作

java - Android 纵向和横向