如何使用Jsoup从HTML解析新行

时间:2012-11-20 18:23:11

标签: java html-parsing jsoup

当我使用jsoup解析HTML文件时,HTML文件中多行(带< br />)的文本显示为一行而没有新行(\n)。我如何将多行HTML文档解析为多行字符串??

我使用的方法是:Element.text()

例如:

HTML包含在HtMl文件中以多行正确显示的C代码,但是当我获取文本数据时,所有数据都显示在单行中而没有新的行字符。

3 个答案:

答案 0 :(得分:3)

<br />替换为其他内容并返回,如下所示:

Document doc = Jsoup.connect("http://www.ejemplo.html").get(); //Here included the <br>'s
String temp = doc.html().replace("<br />", "$$$"); //$$$ instead <br>
doc = Jsoup.parse(temp); //Parse again

String text = doc.body().text().replace("$$$", "\n").toString()); //example
//I get back the new lines (\n)

答案 1 :(得分:0)

元素的text()方法(和TextNode)调用appendWhitespaceIfBr(...),它将用空格替换每个<br />(或空格)。不幸的是,我认为没有机制可以在没有处理代码的情况下关闭它。

但也许你可以尝试用<br />的新子类替换所有Node标签。

答案 2 :(得分:0)

在此查看我对类似问题的回答: https://stackoverflow.com/a/21354729/1510996

有一个静态递归方法的例子可以满足你的要求。