正确使用JTidy来净化HTML

rag*_*was 5 java tidy jtidy htmltidy

我正在尝试使用JTidy(jtidy-r938.jar)来清理输入HTML字符串,但我似乎无法正确获取默认设置.通常,诸如"你好世界"之类的字符串在整理后最终成为"helloworld".我想展示我在这里做的事情,任何指针都会非常感激:

假设这rawHtml是包含输入(真实世界)HTML的String.这就是我正在做的事情:

        Tidy tidy = new Tidy();
        tidy.setPrintBodyOnly(true);

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PrintStream ps = new PrintStream(baos);

        tidy.parse(new StringReader(rawHtml), ps);
        return baos.toString("UTF8");   
Run Code Online (Sandbox Code Playgroud)

首先,上述代码看起来有什么根本错误吗?我似乎得到了奇怪的结果.

例如,请考虑以下输入:

<p class="MsoNormal" style="text-autospace:none;"><font color="black"><span style="color:black;">???</span></font><b><font color="#7f0055"><span style="color:#7f0055;font-weight:bold;">private</span></font></b><font color="black"><span style="color:black;"> String parseDescription</span></font><font>

输出是:

<p class="MsoNormal" style="text-autospace:none;"><font color= "black"><span style="color:black;">&nbsp;&nbsp;&nbsp;</span></font> <b><font color="#7F0055"><span style= "color:#7f0055;font-weight:bold;">private</span></font></b><font color="black"><span style="color:black;">String parseDescription</span></font></p>

所以,

"public String parseDescription"变为"publicString parseDescription"

提前致谢!

rag*_*was 2

嗯,这似乎是 Jtidy 中的一个错误。有关导致问题的确切文件,请参阅此处:

http://sourceforge.net/tracker/?func=detail&aid=2985849&group_id=13153&atid=113153

感谢大家的帮助!