我正在尝试使用 JTidy (jtidy-r938.jar) 来清理输入 HTML 字符串,但我似乎无法正确设置默认设置。通常,诸如“hello world”之类的字符串在整理后最终会变成“helloworld”。我想展示我在这里所做的事情,任何指示将不胜感激:
假使,假设rawHtml
是包含输入(现实世界)HTML 的字符串。这就是我正在做的:
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");
首先,上面的代码看起来有什么根本性的错误吗?我似乎得到了奇怪的结果。
例如,考虑以下输入:
<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;"> </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>
So,
“public String parseDescription”变为“publicString parseDescription”
提前致谢!
看一下 JTidy 是如何配置的:
StringWriter writer = new StringWriter();
tidy.getConfiguration().printConfigOptions(writer, true);
System.out.println(writer.toString());
也许然后就清楚是什么原因导致了问题。
有什么奇怪的?实际输出和预期输出的小例子......也许?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)