2013-01-22 55 views
2

我想解析一些无效的XML,因为属性不在引号中,有没有什么方法可以解决这个问题?下面是一个简单的例子,以及java代码。Java SAXParser解析无效的XML

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. 

感谢。

回答

7

你有什么是良好性问题,而不是一个验证问题(您发布的代码只禁用验证)。 XML解析器要求xml格式良好,并且大部分都是为了原谅只验证问题。可能是如果你看看诸如JSoup这样的html解析器,你有更好的机会,因为他们对格式良好的宽容以及他们尝试自动更正它们。

Read this article了解良构和有效性之间的差异。

+0

谢谢你,我已经使用jsoup之前我会怎么去自动纠正xml使用jsoup? – JCS

+0

我并不是说jsoup会自动更正。我建议您查看自动更正html解析器(如http://ccil.org/~cowan/XML/tagsoup/),您可以使用它来自动更正您拥有的不良xml。 –

+0

@ Pangea试图在jsoup中解析xml(使用Jsoup.parse(string)),它确实更正了xml,谢谢。 – JCS