tinyMCE 编辑器或 Jsoup 可以修复 html 标记错误吗?

Can tinyMCE editor or Jsoup fix html markup errors?

我在我的项目中使用了 tinymce 编辑器。 HTML 编辑器生成的标记使用 Jsoup (v.1.7.2) 进行解析,并用于使用 Apache FOP 生成 pdf。 当用户使用编辑器本身的功能时,它会生成有效的 html 标记,但如果某些用户使用工具直接包含来自其他来源的源代码,假设他输入,

<ul>
  <ul>
     <ul>
        <li>
            one
        </li>
        <li>
            two
        </li>
        <li>
            three
        </li>
        <li>
            four
        </li>
    </ul>
</ul></ul>

edior 没有修复标记,

    <ul>
        <li>
            one
        </li>
        <li>
            two
        </li>
        <li>
            three
        </li>
        <li>
            four
        </li>
    </ul>

根据https://validator.w3.org/nu/#textarea 第一个标记无效,

Error: Element ul not allowed as child of element ul in this context. 

是否可以在 tinymce 编辑器或 Jsoup 解析器中修复 html 标记,如果没有任何其他方法?

你可以尝试使用JTidy,

Tidy tidy = new Tidy();
tidy.setXHTML(true);
final InputStream inputStream = new FileInputStream("input.html");
tidy.parse(inputStream, System.out);