这是我的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"); }
是否有使用Jsoup而不是使用Java而不是Regex解析HTML内容的简便方法
有没有办法只获取所需的内容。所以在这里我只需要内容“项目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