Я пытаюсь использовать 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>
Итак,
«public String parseDescription» становится «publicString parseDescription»
Заранее спасибо!