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