当前位置: 首页 > 知识库问答 >
问题:

如何在j2ee中用换行符替换一些标签并删除其他标签

扶誉
2023-03-14

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

1,2,3

在读完所有这些之后,我决定使用jSoup,这对我真的很有帮助。我还意识到如何保持换行和替换

结果是:

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 

共有1个答案

黄流觞
2023-03-14

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

public class HtmlWithLineBreaks 
{

  public String getCleanHtml(Document document)
  {
    document.outputSettings(new Document.OutputSettings().prettyPrint(false)); //makes html() call preserve linebreaks and spacing
    return Jsoup.clean(document.html(),
        "",
        Whitelist.none(),
        new Document.OutputSettings().prettyPrint(false));
  }

  public static void main(String... args)
  {
    File input = new File("/path/to/some/input.html"); //Just replace the input with you own html file source
    Document document;
    try
    {
      document = Jsoup.parse(input, "UTF-8");
      String printOut = new HtmlWithLineBreaks().getCleanHtml(document);
      System.out.println(printOut);
    } catch (IOException e)
    {
      e.printStackTrace();
    } 
  }

}

(可选)您可以在

public String getCleanHtml(Document document)
{
  document.outputSettings(new Document.OutputSettings().prettyPrint(false));
  document.select("h1").parents().select("div").append("\n"); // Insert a linebreak after the h1 div parent.
  return Jsoup.clean(document.html(),
      "",
      Whitelist.none(),
      new Document.OutputSettings().prettyPrint(false));
}

 类似资料:
  • 如何替换所有标签

  • 我需要在RTF文件的内容中将“\line”标记替换为“\par”标记,然后解析结果文本。 当我通过fileContent时,一切都很顺利!!。数据直接传输到readTextBlocks.(我的转换似乎破坏了文本编码。请帮助我?

  • 问题内容: 我想变成 正则表达式的模式是什么? 注意:标签可以连续出现2次以上。 问题答案: 您 可以 使用,但是如果您尝试在HTML上使用正则表达式,则可能做错了什么。 编辑: 如果您有混合休息,可以使用一种更健壮的模式: 这将赶上并为好,这可能是在某些情况下是有用的。

  • 问题内容: 目标: 使用jQuery,我试图替换所有出现的情况: 与: 我的解决方案: 我了解到以下内容: 我的解决方案的问题: 但是问题在于它用 第一个 “ code”标签之间的内容替换了(第二,第三,第四等)“ code”标签之间的所有内容。 例如 变成 我认为我需要使用“ this”和某种功能,但恐怕我还在学习,并且不太了解如何将解决方案组合在一起。 问题答案: 您可以将一个函数传递给 [d

  • 问题内容: 我正在使用D3生成条形图。我在 _x_轴上使用的标签每个都是几个字长,由于这会使所有标签重叠,因此我需要将这些标签跨行打断。(如果我可以用换行符替换每个标签中的所有空格,那将是很好的。) 我最初是通过用文字换行符()替换空格并在标签的元素上进行设置来尝试此操作的。不幸的是,事实证明SVG不尊重此属性。接下来,我尝试将每个单词都包装成以后可以样式化的格式。我通过此功能传递了每个标签: 但

  • 我已经创建了的,使用: 我希望用户能够双击中的任何,选择的应该替换为,以便用户可以动态地输入新的标签名称。 在用户按下Enter后,应该会变成。