正确使用JTidy来净化HTML

我正在尝试使用JTidy(jtidy-r938.jar)来清理输入HTML字符串,但我似乎无法正确获取默认设置。 通常,诸如“hello world”之类的字符串在整理后最终成为“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"); 

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

例如,请考虑以下输入:

???private String parseDescription

输出是:

    privateString parseDescription

所以,

“public String parseDescription”变为“publicString parseDescription”

提前致谢!

看看如何配置JTidy:

 StringWriter writer = new StringWriter(); tidy.getConfiguration().printConfigOptions(writer, true); System.out.println(writer.toString()); 

也许它会明白导致问题的原因。

有什么奇怪的? 很少的例子,实际产出和预期……也许?

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

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

感谢所有帮助人员!

以下是我们如何从Ant调用JTidy。 您可以从中推断出API调用:

                    
Interesting Posts