2

目前这让我很烦恼。

如果字符串包含,则 Jsoup 在返回的字符串中包含一个额外的换行符<br />

例如。

String html ="TEST<br />TEST";

Jsoup.clean(html, org.jsoup.safety.Whitelist.basic());

返回

TEST\n<br />TEST

关于如何避免包含麻烦的 \n 的任何建议?

4

2 回答 2

2

你试过.text();还是.ownText();Elements班上来的?

//If you want the whole page
String url = "http://www.yourwebsite.com";
Document doc = Jsoup.connect(url).get();
System.out.println(doc.text());

//If you want some specific part of the page
Elements elems = doc.select("query");

for (Element element : elems) {
    System.out.println(element.text() + "\n");
    System.out.println(element.ownText() + "\n\n");
}

如果每个element返回< p>Hello< b> there< /b> now!< /p>

  1. 该方法text();将返回Hello there now!
  2. 该方法ownText();将返回Hello now!

只是为了更容易理解:.text();将返回您获得的标签内的整个文本。该ownText();方法将返回来自标签本身的文本,而不是来自其子项的文本。

关于 中的查询doc.select("query");,您可以在此处搜索您想要的任何模式。

于 2012-05-28T16:41:49.810 回答
1
    Cleaner cleaner = new Cleaner(WHITE_LIST);
    Document clean = cleaner.clean(body);
    Document.OutputSettings outputSettings = new Document.OutputSettings();
    outputSettings.prettyPrint(false);
    clean.outputSettings(outputSettings);
    return clean.body().html();

outputSettings.prettyPrint(false);

于 2020-10-13T03:08:54.930 回答