目前在本教程Android XML Adventure – Parsing HTML using JSoup之后,应用程序可在模拟器中运行,但在设备上的TextView中显示错误。
我已将jsoup-1.7.2.jar复制并粘贴到libs中,在AndroidManifest.xml中设置<uses-permission android:name="android.permission.INTERNET"/>
并设置TextView android:id="@+id/tv"
。这就是我Project Explorer的样子。
这是JsoupActivity.java
package com.jsoupstudyactivity;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.view.Menu;
public class JSoupActivity extends Activity {
// blog url
static final String BLOG_URL = "http://xjaphx.wordpress.com/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// process
try {
((TextView)findViewById(R.id.tv)).setText(getBlogStats());
} catch (Exception ex) {
((TextView)findViewById(R.id.tv)).setText("Error");
}
}
protected String getBlogStats() throws Exception {
String result = "";
// get html document structure
Document document = Jsoup.connect(BLOG_URL).get();
// selector query
Elements nodeBlogStats = document.select("div#blog-stats-2 ul li");
// check results
if(nodeBlogStats.size() > 0) {
// get value
result = nodeBlogStats.get(0).text();
}
// return
return result;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.jsoup, menu);
return true;
}
}
答案 0 :(得分:1)
试试这个(block-stats-2而不是block-stats)
Elements nodeBlogStats = document.select("div#blog-stats-2 ul li");
你应该得到657,462查看。