我使用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>
编辑不固定的标记来,
<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.
是固定的HTML标记可能在TinyMCE的编辑器或Jsoup解析器,如果没有任何其他的方法呢?
您可以尝试使用JTidy,
Tidy tidy = new Tidy();
tidy.setXHTML(true);
final InputStream inputStream = new FileInputStream("input.html");
tidy.parse(inputStream, System.out);