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」になります
前もって感謝します!