正确使用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调用: