【发布时间】:2023-03-27 03:02:01
【问题描述】:
我有一些 HTML 代码是 XSLT 转换的结果。 (XML->HTML)
我想对结果 HTML 运行另一个 XSLT 转换。 (HTML->HTML)
我的问题是第一个转换可能会返回未封闭的标签,例如“<img>”,这意味着我无法使用 DocumentBuilder 解析结果 html,因为它使用 SAXparser,当然我的 html 文件不是有效的 xml所有情况。 (我得到一个异常,必须关闭以下 XY 标记。)
我想有两种解决方案。
通过关闭未关闭的标签来修复结果 HTML。
使用某种 HTML 解析器来获取有效的 org.w3c.dom.Document 并跳过像 SAX 这样的 XML 解析器。
我真的很想主要使用与第一次转换相同的方法,所以我更喜欢上述问题的一个解决方案,即我找不到任何明显的第 3 方罐子可以提供帮助。 (虽然我看了。)所以基本上我想知道我在这里有什么选择,有没有解决这个问题的方法?
任何帮助将不胜感激。
【问题讨论】:
-
jtidy.sourceforge.net 可以帮到你
-
HTML5 推荐的方法是选项 2。你很幸运。 Java 中有很多免费的 HTML 解析器,大多数都会创建一个与 org.w3c.dom.Document 兼容的 DOM。
-
感谢大家的帮助,我测试了几乎所有的建议,它们似乎都是可行的。在我最终使用 nu.validator.htmlparser.dom.HtmlDocumentBuilder 类之后,它就像一个魅力。再次感谢。
标签: java html parsing xslt tags