我收到“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/