我需要解析非格式良好的xml数据(HTML)

我在JAVA中有一些格式不正确的xml(HTML)数据,我使用了JAXP Dom,但它抱怨道。

问题是:有没有办法使用JAXP来解析这些文件?

我有一个包含以下数据的文件:

    

并不是的。 JAXP需要格式良好的标记。 您是否考虑过Cyber​​neko HTML Parser ? 我们在我们的商店非常成功。

编辑:我看到你也想解析XML。 Hrmm …. Cyber​​neko适用于HTML,但我不了解其他人。 它有一个标签平衡器可以关闭一些标签,但我不知道你是否可以训练它来识别不是HTML的标签。

您可以先尝试通过jtidy API运行文档 – 它能够将html转换为有效的xhtml: http : //jtidy.sourceforge.net/howto.html

 Tidy tidy = new Tidy(); tidy.setXHTML(true); tidy.parse(......)... 

你可以使用TagSoup 。 我用它非常成功。 它与Java XML API完全兼容,包括SAX,DOM,XSLT和StAX。 例如,以下是我如何使用它将XSLT转换应用于特别糟糕的HTML:

 public static void transform(InputStream style, InputStream data) throws SAXException, TransformerException { XMLReader reader = XMLReaderFactory.createXMLReader("org.ccil.cowan.tagsoup.Parser"); Source input = new SAXSource(reader, new InputSource(data)); Source xsl = new StreamSource(style); Transformer transformer = TransformerFactory.newInstance().newTransformer(xsl); transformer.transform(input, new StreamResult(System.out)); }