java - 修复 html 中未闭合的标签或使用 HTML 解析器解析以进行 XSLT 转换

标签 java html parsing xslt tags

我有一些 HTML 代码是 XSLT 转换的结果。 (XML->HTML)

我想对结果 HTML 运行另一个 XSLT 转换。 (HTML->HTML)

我的问题是第一个转换可能会返回未闭合的标签,如“<img>”,这意味着我无法使用 DocumentBuilder 解析结果 html,因为它使用 SAXparser,当然我的 html 文件不是有效的 xml所有情况。 (我得到一个异常(exception),必须关闭以下 XY 标签。)

我想有两种解决方案。

  1. 要么通过关闭未关闭的标签来修复结果 HTML。

  2. 使用某种 HTML 解析器获取有效的 org.w3c.dom.Document 并跳过 SAX 等 XML 解析器。

我真的很想主要使用与第一次转换相同的方法,所以我更喜欢上述问题的解决方案之一是我找不到任何明显的第 3 方 jar 可以提供帮助。 (虽然我看了。)所以基本上我想知道我在这里有什么选择,这个问题有什么解决方案吗?

如有任何帮助,我们将不胜感激。

最佳答案

您需要的是Jsoup:Java HTML 解析器。它具有输出整洁 HTML 的功能。

String html = "<p>The recurrence, in close succession <ul><li>list item 1</li><li>list item 2</li></ul> second part of thisssss";
String clean = Jsoup.clean(html, Whitelist.relaxed());

您可以使用其他Whitelist还有。

关于java - 修复 html 中未闭合的标签或使用 HTML 解析器解析以进行 XSLT 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15203972/

相关文章:

javascript - 将 css 动态应用于模态?

html - 更改标题元素内的颜色无法正常工作

Java顺序解析文件中的信息

java - 如何在不使用循环或条件的情况下打印 n 个星星

java - 公历12小时24小时困惑

java - Swing:将鼠标悬停在半透明 JPanel 上的单选按钮标签上

html - 无法在 Rails 中显示 CSS bg

java - 根据框架是否打开启用和禁用按钮

java - 当 JSON 为 null 时尝试从中提取

parsing - 将字符插入 Haskell 中的解析器组合器字符流