Muh*_*edy 5 java xml parsing jaxp
我在JAVA中有一些格式不正确的xml(HTML)数据,我使用了JAXP Dom,但它抱怨道.
问题是:有没有办法使用JAXP来解析这些文件?
我有一个包含以下数据的文件:
<employee>
<name value="ahmed" > <!-- note, this element is not closed, So it is not well-formed xml-->
</employee>
Run Code Online (Sandbox Code Playgroud)
您可以先尝试通过jtidy API运行文档 - 它能够将html转换为有效的xhtml:http://jtidy.sourceforge.net/howto.html
Tidy tidy = new Tidy();
tidy.setXHTML(true);
tidy.parse(......)...
Run Code Online (Sandbox Code Playgroud)
你可以使用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));
}
Run Code Online (Sandbox Code Playgroud)
并不真地。JAXP 需要格式良好的标记。您考虑过Cyberneko HTML 解析器吗?我们的商店在这方面非常成功。
编辑:我发现您也想解析 XML。嗯...Cyberneko 对于 HTML 工作得很好,但我不知道其他的。它有一个标签平衡器,可以关闭一些标签,但我不知道你是否可以训练它识别非 HTML 标签。
| 归档时间: |
|
| 查看次数: |
6376 次 |
| 最近记录: |