我需要解析一个没有根元素、命名空间声明和实体声明的 xml 块,尽管这三个块都包括在内。
到目前为止,我一直在使用Dom4j
并围绕内容进行一些包装,但是新的实体和名称空间不断出现,并且DTD/Schema
内容的不可访问。
鉴于我无法控制获取 XML 的来源,是否有任何一种java XML parser
可以容忍这些错误?
缺少根元素
未绑定的命名空间
未申报的实体
您可以尝试使用TagSoup,它可以“原谅”标记中的许多错误。
要解决缺少根元素的问题,您始终可以在需要解析的 XML 块周围添加自己的根元素。
我认为所有主要的 Java XML 解析器都有这些严格的要求,例如根元素。解决这一切的简单方法是编写自己的 Java XML 解析器。如果您将 XML 纯粹用作配置文件,那么我建议您考虑使用 Java 属性。
谢谢,里斯