java - 使用 Jsoup 解析 Html 内容

标签 java android html parsing jsoup

这是我的 HTML 源代码

             <li>
                 <a href="/info/some1>Item 1<br>
                    <span class="deets">111</span>
                 </a>
             </li>

             <li>
                 <a href="/info/some2>Item 2<br>
                    <span class="deets">222</span>
                 </a>
             </li>

             <li>
                 <a href="/info/some3>Item 3<br>
                    <span class="deets">333</span>
                 </a>
             </li>

这是我的 Java 程序,用于获取内容并过滤 HTML 标签

    try {   
        myurl = new URL("http://www.somewebsite.com");  
        HttpURLConnection con= (HttpURLConnection) myurl.openConnection();

        InputStream result = con.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(result));
        StringBuilder sb = new StringBuilder();

        for(String line; (line = reader.readLine()) != null;)
            //append all content & separate using line separator
        sb.append(line).append(System.getProperty("line.separator"));
        String final_result = sb.toString().replaceAll("\\<.*?\\>", "");    

        TextView tv=(TextView) findViewById(R.id.textView1); 
        tv.setText(final_result);


    } 

    catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        tv.setText("not working");
    }
  1. 有没有更简单的方法使用 Jsoup 来解析使用 Java 而不是 Regex 的 HTML 内容

  2. 有没有办法只获取所需的内容。所以在这里我只想要内容“项目 2 - 222”

             <li>
                 <a href="/info/some2>Item 2<br>
                    <span class="deets">222</span>
                 </a>
             </li>
    

最佳答案

尝试使用 jsoup 轻松解析:

// To parse the html page
Document doc = Jsoup.connect("http://www.website.com").get();
Document doc1 = Jsoup.parse("<html><head><title>First parse</title></head>" + "<body> <p>Parsed HTML into a doc.</p></body></html>");

String content = doc.body().text();

// To get specific elements such as links
Element links = doc.select("a[href]");
for(Element e: links){
    System.out.println("link: " + e.attr("abs:href"));
}

要了解更多信息,请访问 Jsoup Docs

关于java - 使用 Jsoup 解析 Html 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24224828/

相关文章:

java - 以编程方式启动 WinAppDriver.exe

android - 将子文件夹添加到 android studio 1.0.2 中的 java 文件夹

java - 按钮的新 setText 属性无缘无故出现空指针异常

php - 根据一列 IF 标题对两个表进行排序

html - 试图模仿 Lamborghini.com 的布局无济于事

python - 有没有办法在 django html 文件中注释掉 python 代码?

java - BACnet 访问远程设备

java - 从网络表中获取所有数据值

java - arraylist 的 if 语句有问题

android - 在 Android 中构建 PJSiP 时出错