quarta-feira, 5 de junho de 2013

Parseando conteúdo de uma página HTML usando a biblioteca JSoup em Android


O objetivo desse post é mostrar a facilidade em se parsear um conteúdo HTML usando o JSoup (Java HTML Parser) em aplicativos Android. 
Para aprender um pouco mais sobre o JSoup e suas possibilidades, veja o seguinte link: http://jsoup.org/

Primeiramente faça o download da biblioteca (http://jsoup.org/download) e configure o build path do seu projeto android.




Vamos começar por um simples código HTML:

<html>
<body bgcolor="#696969">
<font face='verdana' style='font-size:16px' color='#000000'>
<h2>Android - JSoup</h2>
<br> 
<font face='verdana' style='font-size:12px' color='#000000'>
<a id="descricao">O Android é o sistema operacional portátil mantido pela Google e presente em um   considerável número de smartphones</a>
</body>
</html>

Link da página de teste: http://testandroid.webuda.com/

Agora vamos ver o código para Android comentado:

package adamitech.blog;

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;

public class Android_JSoup_HTML_ParserActivity extends Activity {

    
String HTML_URL = "http://testandroid.webuda.com/";
TextView txv_conteudo_html;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        txv_conteudo_html = (TextView)findViewById(R.id.conteudo_html);
        
        try {
txv_conteudo_html.setText(htmlParsingResult());
} catch (Exception e) {
e.printStackTrace();
}
    }
    
    public String htmlParsingResult() throws Exception {
    String resultado = "";
   
    // Adquiri a estrutura do documento HTML
    Document document = Jsoup.connect(HTML_URL).get();
   
    // Query
    Elements nodeBlogStats = document.select("a#descricao");
   
    // checando resultados
    if(nodeBlogStats.size() > 0) {
    // Pegando o valor
    resultado = nodeBlogStats.get(0).text();
    }

    return resultado;

    }
}




O arquivo main.xml também é bastante simples pois possui apenas um componente TextView para exibir o conteúdo parseado.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<TextView  
android:id="@+id/conteudo_html"
android:textSize="22dp"
android:textStyle="bold"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="15dp"/>

</LinearLayout>

Não se esqueça de habilitar a permissão de Internet no arquivo manifest do seu projeto Android. 

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Em breve mais postagens!!!

Abraço

Rafael Adami
pivotoadami@gmail.com

Nenhum comentário:

Postar um comentário