Jakarta ee 如何在j2ee中用换行符替换某些标记并删除其他标记

Jakarta ee 如何在j2ee中用换行符替换某些标记并删除其他标记,jakarta-ee,jsoup,Jakarta Ee,Jsoup,主要问题是获取html文件的内容并删除所有标记。 我以前读过这些问题: , 在阅读了所有这些之后,我决定使用jsoup,这对我真的很有帮助。我还了解了如何保持换行符并用换行符替换标记。 现在我的问题是,我有一个html文件,里面有一个标记,里面有整个内容的标题,我想用换行符保留它,但是用jsoup,第一段正好在标题后面,没有任何换行符。有人能帮我吗? 我拥有的html代码: NFL 2014预测 我们对季后赛球队、惊喜、超级碗的选择 发布时间:美国东部时间2014年9月2日下午1:30 最

主要问题是获取html文件的内容并删除所有标记。
我以前读过这些问题:

,

在阅读了所有这些之后,我决定使用
jsoup
,这对我真的很有帮助。我还了解了如何保持换行符并用换行符替换
标记。
现在我的问题是,我有一个html文件,里面有一个
标记,里面有整个内容的标题,我想用换行符保留它,但是用jsoup,第一段正好在标题后面,没有任何换行符。有人能帮我吗?
我拥有的html代码:


NFL 2014预测


我们对季后赛球队、惊喜、超级碗的选择


发布时间:美国东部时间2014年9月2日下午1:30

最后更新日期:美国东部时间2014年9月4日上午10:27

结果是:

NFL 2014 predictionsOur picks for playoff teams, surprises, Super Bowl

Posted: Sep 02, 2014 1:30 PM ETLast Updated: Sep 04, 2014 10:27 AM ET  
我希望它是:

NFL 2014 predictions  
Our picks for playoff teams, surprises, Super Bowl  
Posted: Sep 02, 2014 1:30 PM ET  
Last Updated: Sep 04, 2014 10:27 AM ET 

您应该钩住目标
文档的
输出设置
,因此请尝试以下操作:

公共类HtmlWithLineBreaks
{
公共字符串getCleanHtml(文档)
{
document.outputSettings(new document.outputSettings().prettyPrint(false));//使html()调用保留换行符和间距
返回Jsoup.clean(document.html(),
"",
白名单。无(),
新文档.OutputSettings().prettyPrint(false));
}
公共静态void main(字符串…参数)
{
File input=new File(“/path/to/some/input.html”);//只需将输入替换为您自己的html文件源
文件;
尝试
{
document=Jsoup.parse(输入“UTF-8”);
字符串打印输出=新的HtmlWithLineBreaks().getCleanHtml(文档);
系统输出打印项次(打印输出);
}捕获(IOE异常)
{
e、 printStackTrace();
} 
}
}
如果您对提供的输出不满意,还可以选择在
包装后插入自定义换行符:

公共字符串getCleanHtml(文档)
{
document.outputSettings(新建document.outputSettings().prettyPrint(false));
document.select(“h1”).parents().select(“div”).append(“\n”);//在h1 div父级之后插入换行符。
返回Jsoup.clean(document.html(),
"",
白名单。无(),
新文档.OutputSettings().prettyPrint(false));
}

add
在您关闭您的HTML代码是我的输入后,我应该如何更改它?它不理解在每个HTML代码结束后插入
标记。所以输出会和第一个一样,你试过了吗?我假设没有,因为代码已经引入了一个错误,我刚刚纠正了这个错误。我还更新了关于如何插入显式换行符的答案,即使
Jsoup
理解您的内联块并相应地包装它们。