如何在使用jsoup进行消毒/清洁后保留html主体

时间:2012-11-15 06:56:36

标签: jsoup

我是jsoup新手。我正在尝试使用HTML字符串进行清理。 String html = "<html><head><body bgcolor=\"red\"><p>sidd</p></body></html></head>";

我想保留body标签,所以我按照以下方式制作了白名单

    Whitelist w = Whitelist.relaxed();
    w.addTags("html");
    w.addTags("head");
    w.addTags("body");
    w.addAttributes("body","bgcolor");

此输出为<p>sidd</p>。有人可以告诉我如何在我的消毒输出中保留“身体”标签吗?

3 个答案:

答案 0 :(得分:0)

您可以使用parse() - 方法:

final String html = "<html><head><body bgcolor=\"red\"><p>sidd</p></body></html></head>";

Document doc = Jsoup.parse(html); // Make shure you import 'org.jsoup.nodes.Document'

System.out.println(doc); // Output your html or whatever

<强>输出:

<html>
 <head></head>
 <body bgcolor="red">
  <p>sidd</p>
 </body>
</html>

如果您只需要使用正文标记doc.select("body")。输出:

<body bgcolor="red">
 <p>sidd</p>
</body>

答案 1 :(得分:0)

使用jsoup进行解析不会清理html

答案 2 :(得分:0)

有一个body()方法可以为你提供身体:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class so {

    public static void main(String[] args) {

        String html = "<html><head><body bgcolor=\"red\"><p>sidd</p></body></html></head>";
        Document doc = Jsoup.parse(html);
        System.out.println(doc.body());
    }
}

输出:

<body bgcolor="red">
 <p>sidd</p>
</body>