0

所有-我以前从未做过这种事情,我很困惑。我在 Google 上花了几个小时寻找一些示例代码或任何提示,但是每当我尝试使用可用代码时,我总是会遇到错误,并且最终会比开始时更加困惑。所以自怜和借口已经够多了。让我们来看看这个问题:我有一个应用程序“屏幕碎片”一个网站,现在是谷歌。我已经得到它,所以我可以在文本视图中显示 html: 在此处输入图像描述 我现在的问题是从中获取信息。我想要的只是标题标签(“Google”)中的信息。我已经阅读了有关 HTML 解析的内容,但是当我阅读有关 TagSoup 或其他类似信息的信息时,我感到非常困惑。我是否需要这些来执行此操作,或者我可以编写一些 Java 代码来提取标题标签并将其转换为字符串然后显示它。如果我确实需要 HTML 解析器,有人可以给我一些示例代码。我在他们的网站上找不到任何东西。这是我到目前为止的代码:

public class MainActivity extends Activity {
String page;
String display;
Document doc;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);        
    new AddStringTask().execute();      
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}    
class AddStringTask extends AsyncTask<Void, String, Void> {    
    @Override
    protected Void doInBackground(Void... unused) {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet("http://www.google.com");
        ResponseHandler<String> resHandler = new BasicResponseHandler();
        try {
            page = httpClient.execute(httpGet, resHandler);             
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onProgressUpdate(String... item) {           
    }       
    @Override
    protected void onPostExecute(Void unused) {  
        TextView google = (TextView) findViewById(R.id.google);         
        google.setText(page);       
    }       
}
}

任何示例代码都会很棒,因为我需要查看一些示例。非常感谢您的时间。

4

1 回答 1

3

jsoup:Java HTML Parser应该可以解决问题:

Document doc = Jsoup.connect("http://google.com/").get();
String docTitle = doc.title();

然后传递docTitlegoogle.setText()

您可以在此处找到更多示例。

于 2012-09-10T00:24:36.767 回答