Autore Topic: Effettuare parse Html Tramite Jsoup  (Letto 1403 volte)

Offline dr4gone

  • Utente junior
  • **
  • Post: 66
  • Respect: +1
    • Mostra profilo
Effettuare parse Html Tramite Jsoup
« il: 23 Dicembre 2011, 14:02:28 CET »
0
Ciao, ho iniziato ad usare da poco Jsoup per fare il parsing html di alcune pagine.. e devo dire che si comporta egregiamente...
Ma ho un dubbio...
Mettiamo caso che io abbia questo pezzo di codice html

<table cellspacing="0" cellpadding="3" bgcolor="#373abe" border="0">
   <tr>
      <td>
         <table cellspacing="1" cellpadding="2" width="564" border="0">

         <tr bgcolor="#e8f404">
             <td class="b10" align="center">
                  <span id="lblIntestazione" class="blu12" style="font-weight:bold;">Benvenuto NOME UTENTE</span></td>
                  </tr>
               </table>
            </td>
         </tr>
      </table>

E voglio estrapolare "Benvenuto NOME UTENTE"

usando questo codice:
Codice (Java): [Seleziona]
public class HtmlParser extends Activity {
    /** Called when the activity is first created. */
       
        public Document doc;
                @Override
                public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.main);
                        TextView debug = (TextView)findViewById(R.id.tv_debug);
               
                        try {
                                doc = Jsoup.parse(new URL("http://www.MIA_URL"), 5000);
                                Element result = (doc.getElementById("lblIntestazione"));
                                 System.out.println(result);
                                 debug.setText(""+ result);
                        } catch (MalformedURLException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }                                      
                }      
        }
Riesco ad ottenere dentro l'elemento "result" questo:
Codice: [Seleziona]
<span id="lblIntestazione" class="blu12" style="font-weight:bold;">Benvenuto NOME UTENTE</span></td>
Come posso fare per eliminare il superfluo per ottenere solo    Benvenuto NOME UTENTE   ?

Mi verrebbe in mente che dovrei in qualche modo rifare il parsing su questo result e vedere di eliminare il superfluo, ma non c'è un altro modo per farlo direttamente?

Ho provato a cercare qui Cookbook: jsoup Java HTML parser ma evidentemente mi deve essere sfuggito qualcosa...

Offline dr4gone

  • Utente junior
  • **
  • Post: 66
  • Respect: +1
    • Mostra profilo
Re:Effettuare parse Html Tramite Jsoup
« Risposta #1 il: 24 Dicembre 2011, 08:31:55 CET »
0
Soluzione trovata leggendo meglio il cookbook. Basta aggiungere questo
Codice: [Seleziona]
String text = result.text();
Posto il codice per completezza a chi potesse servire.

Codice (Java): [Seleziona]
public class HtmlParser extends Activity {
    /** Called when the activity is first created. */
       
        public Document doc;
                @Override
                public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.main);
                        TextView debug = (TextView)findViewById(R.id.tv_debug);
               
                        try {
                                doc = Jsoup.parse(new URL("http://www.MIA_URL"), 5000);
                                Element result = (doc.getElementById("lblIntestazione"));
                                 String text = result.text();
                                 debug.setText(""+ text);
                        } catch (MalformedURLException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }                                      
                }      
        }