:私は望んでいます何
This is REALLY dirty code from <a href="www.rubbish.url.zzzz">haxors-r-us</a>
する文字列を "クリーン" である:
String dirty = "This is <b>REALLY</b> dirty code from <a href="www.rubbish.url.zzzz">haxors-r-us</a>
String clean = Jsoup.clean(dirty, new Whitelist().addTags("a").addAttributes("a", "href", "name", "rel", "target"));
これはの "きれい" の文字列が与えますHTML文書は(あなたの質問に応じて)解析されています。
public String escapeHtml(String source) {
Document doc = Jsoup.parseBodyFragment(source);
Elements elements = doc.select("b");
for (Element element : elements) {
element.replaceWith(new TextNode(element.toString(),""));
}
return Jsoup.clean(doc.body().toString(), new Whitelist().addTags("a").addAttributes("a", "href", "name", "rel", "target"));
}
「b」タグを引数にして、エスケープするタグのリストを渡すことができます。
関連する通過JUnitテスト:JSoupがページをフォーマットするので、私は私のテストの「期待」文字列であなたの「」タグの前に改行を「\ n」は追加
@Test
public void testHtmlEscaping() throws Exception {
String source = "This is <b>REALLY</b> dirty code from <a href=\"www.rubbish.url.zzzz\">haxors-r-us</a>";
String expected = "This is <b>REALLY</b> dirty code from \n<a href=\"www.rubbish.url.zzzz\">haxors-r-us</a>";
String transformed = transformer.escapeHtml(source);
assertEquals(transformed, expected);
}
注意。
いいです。いいえ、Jsoupはサポートしていません。 HTMLリクエストをHTMLエスケープに変換する "ホワイトリストAPIに新しいメソッドを追加するには、機能リクエストを投稿してください。 – BalusC
投稿機能リクエスト:https://github.com/jhy/jsoup/issues/515 –