Autore Topic: Parsing html help me  (Letto 740 volte)

Offline moskino11

  • Utente normale
  • ***
  • Post: 180
  • Respect: 0
    • Mostra profilo
Parsing html help me
« il: 20 Dicembre 2012, 17:20:16 CET »
0
Ciao a tutti ho un disperato bisogno di aiuto.
dovrei parsare una pagina html (mi hanno consigliato di utilizzare Jsoup), prendere degli elementi e piazzarli in uno spinner.
Siccome io non ho mai visto come si parsa una pagina html qualcuno mi potrebbe aiutare ?Magari facendomi un esempio non so...sono disperato
Grazie mille per l'aiuto!!


Offline babsevensix

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +1
    • Mostra profilo
Re:Parsing html help me
« Risposta #1 il: 20 Dicembre 2012, 23:09:46 CET »
0
Oltre a JSoup c'è HtmlCleaner

Offline moskino11

  • Utente normale
  • ***
  • Post: 180
  • Respect: 0
    • Mostra profilo
Re:Parsing html help me
« Risposta #2 il: 21 Dicembre 2012, 16:41:11 CET »
0
Sto usando jsoup, ho fatto prima una prova creando un progetto java e per prelevare dei dati ho scritto in questo modo:

ho importato tutte le classi di mio interesse è poi ho scritto il seguente codice:


public class Parsing {
   public static void main(String[] arg) throws IOException {
   
                Document doc = Jsoup.connect("http://xxxxxxxxit/").get();
      Elements element_class=doc.select("a[class=start]");
      for(Element e:element_class){
         
      System.out.println(e.html());
      
      }
      
      
      }
   }



Così facendo sono riuscito a ricavarmi gli elementi che mi interessano funziona.
Il mio problema e utilizzare questo dati in un progetto android; ho creato un layout e mi creo due classi una per il parsing e un'altra in cui vado a popolare lo spinner contenente appunto quei dati.
Prima di fare questo però non so dome metterli questi dati, io ho provato  ad utilizzare un hashmap.
Premesso che non mi da errori il progetto nel momento in cui lancio l'emulatore mi da la chiusura forzata.
il codice utilizzato è il seguente:


CLASSE Parsing

public class Parsing {
   

   
   public HashMap<String,String> parserRegione() throws IOException{
      HashMap<String,String> reg=new HashMap<String,String>();
   
      Document doc = Jsoup.connect("http://xxxx.it/").get();
      Elements element_class=doc.select("a[class=start]");
      for(Element e:element_class){
      
         reg.put(e.html(),e.attr("href"));
      
   
      }
      return reg;
}}


CLASSE Finestra

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        Spinner regione = (Spinner) findViewById(R.id.spinnerRegioni);
        try {
        HashMap<String,String> x =(new Parsing()).parserRegione();
        ArrayList<String> arrayRegioni=new ArrayList<String>();
        for(String s:x.keySet())
         arrayRegioni.add(s);
      ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, arrayRegioni);
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      regione.setAdapter(adapter);
        } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }

Qualcuno mi aiuti perpiacere sto andando al manicomio.