首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在使用jsoup将html转换为纯文本时保留换行符?

如何在使用jsoup将html转换为纯文本时保留换行符?
EN

Stack Overflow用户
提问于 2011-04-13 03:11:02
回答 14查看 66.3K关注 0票数 112

我有以下代码:

代码语言:javascript
复制
 public class NewClass {
     public String noTags(String str){
         return Jsoup.parse(str).text();
     }


     public static void main(String args[]) {
         String strings="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN \">" +
         "<HTML> <HEAD> <TITLE></TITLE> <style>body{ font-size: 12px;font-family: verdana, arial, helvetica, sans-serif;}</style> </HEAD> <BODY><p><b>hello world</b></p><p><br><b>yo</b> <a href=\"http://google.com\">googlez</a></p></BODY> </HTML> ";

         NewClass text = new NewClass();
         System.out.println((text.noTags(strings)));
}

我得到的结果是:

代码语言:javascript
复制
hello world yo googlez

但我想打破这条线:

代码语言:javascript
复制
hello world
yo googlez

我看过jsoup's TextNode#getWholeText(),但我不知道如何使用它。

如果我解析的标记中有<br>,我如何在结果输出中换行?

EN

回答 14

Stack Overflow用户

发布于 2011-05-17 21:26:41

使用

代码语言:javascript
复制
Jsoup.parse("A\nB").text();

你有输出

代码语言:javascript
复制
"A B" 

而不是

代码语言:javascript
复制
A

B

为此,我使用:

代码语言:javascript
复制
descrizione = Jsoup.parse(html.replaceAll("(?i)<br[^>]*>", "br2n")).text();
text = descrizione.replaceAll("br2n", "\n");
票数 46
EN

Stack Overflow用户

发布于 2013-04-24 00:46:07

代码语言:javascript
复制
Jsoup.clean(unsafeString, "", Whitelist.none(), new OutputSettings().prettyPrint(false));

我们在这里使用这种方法:

代码语言:javascript
复制
public static String clean(String bodyHtml,
                       String baseUri,
                       Whitelist whitelist,
                       Document.OutputSettings outputSettings)

通过传递Whitelist.none(),我们可以确保所有的超文本标记语言都被移除。

通过传递new OutputSettings().prettyPrint(false),我们可以确保输出不会重新格式化,并且会保留换行符。

票数 44
EN

Stack Overflow用户

发布于 2018-05-17 22:04:41

在JSoupv1.11.2上,我们现在可以使用Element.wholeText()

示例代码:

代码语言:javascript
复制
String cleanString = Jsoup.parse(htmlString).wholeText();

user121196's answer仍然有效。但是wholeText()保留了文本的对齐方式。

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5640334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档