使用jsoup将HTML解析为格式化明文

时间:2014-10-13 18:38:50

标签: java maven jsoup

我正在开发一个maven项目,允许我从网站解析html数据。我能够使用下面的代码解析它:

public void parseData(){
        String url = "http://stackoverflow.com/help/on-topic";
        try {
            Document doc = Jsoup.connect(url).get();
            Element essay = doc.select("div.col-section").first();
            String essayText = essay.text();
            jTextAreaAdem.setText(essayText);


        } catch (IOException ex) {
            Logger.getLogger(formAdem.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

到目前为止,我没有任何问题。我可以解析HTML数据。 我正在使用jsoup中的select方法并使用“div.col-section”检索数据,这意味着我正在寻找具有类col-section的div元素。 我想在textarea中打印数据。我的结果是一个巨大的段落,即使网站上的真实数据不止一个段落。那么如何解析数据就像网站上的那样?

1 个答案:

答案 0 :(得分:3)

格式化的原因是格式化在HTML中 - 包含<p><ol>标记等。在块元素上调用.text()会丢失该格式。< / p>

Jsoup有一个示例HTML to Plain Text convertor,您可以通过提供div元素作为焦点来适应您的需求。

或者,您可以选择"div.col-section > *",然后遍历每个元素,并使用换行符打印该文本。