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);
我在我的项目中使用了 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);