Java SAXParser 解析无效的 xml [重复]
Posted
技术标签:
【中文标题】Java SAXParser 解析无效的 xml [重复]【英文标题】:Java SAXParser parsing invalid xml [duplicate] 【发布时间】:2013-01-06 00:37:03 【问题描述】:我正在尝试解析一些无效的 xml,因为属性不在引号中,有没有办法解决这个问题?下面是一个简单的例子,以及java代码。
XML
<car id=1>
.
.
</car>
Java
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(false);
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(page, handler); //page is an input stream where the xml is.
谢谢。
【问题讨论】:
【参考方案1】:您遇到的是 well-formedness 问题,而不是 validation 问题(您发布的代码只是禁用了验证)。 XML 解析器要求 xml 格式正确,并且大多数情况下都是为了只原谅验证问题而编写的。如果您查看像 JSoup 这样的 html 解析器,您可能会有更好的机会,因为它们会原谅格式正确并尝试自动更正它们。
Read this article 了解格式良好和有效性之间的区别。
【讨论】:
谢谢你,我之前使用过 jsoup,我将如何使用 jsoup 自动更正 xml? 我并不是说 jsoup 会自动更正。我建议您四处寻找自动更正的 html 解析器(例如 ccil.org/~cowan/XML/tagsoup),您可以使用它来自动更正您拥有的错误 xml。 @Pangea 刚刚尝试解析 jsoup 中的 xml(使用 Jsoup.parse(string)),它确实更正了 xml,谢谢。以上是关于Java SAXParser 解析无效的 xml [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 SaxParser 解析 XML 文档的问题 - 2047 个字符限制?