当我使用jsoup解析HTML文件时,HTML文件中多行(带< br />
)的文本显示为一行而没有新行(\n
)。我如何将多行HTML文档解析为多行字符串??
我使用的方法是:Element.text()
例如:
HTML包含在HtMl文件中以多行正确显示的C代码,但是当我获取文本数据时,所有数据都显示在单行中而没有新的行字符。
答案 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
有一个静态递归方法的例子可以满足你的要求。