2016-06-07 13 views
1

so bin ich schön noob und ich versuche zu this xml zu analysieren, um eine Liste der italienischen TV-Programme zu bekommen. Aber wenn ich myParser.getText verwende, wird Null zurückgegeben. Ich komme tatsächlich in den Knoten, aber dann wird es keinen Wert daraus erhalten.myParser.getText immer Null

public void parseXMLAndStoreIt(XmlPullParser myParser) { 
    int event; 
    String text=null; 
    try { 
     event = myParser.getEventType(); 
     while (event != XmlPullParser.END_DOCUMENT) { 
      String name=myParser.getName(); 
      switch (event){ 

       case XmlPullParser.START_TAG: 
        if(name.equals("display-name")){ 
         channel = myParser.getText(); 
         Log.d(name+" -->",myParser.getText()); 
        } 
        else if(name.equals("programme")){ 
         hour = myParser.getAttributeValue(null,"start"); 
         Log.d(name+" -->",hour); 
        } 
        else if(name.equals("title")){ 
         programme = myParser.getText(); 
         Log.d(name+" -->",myParser.getText()); 
        } 
        else if(name.equals("desc")){ 
         description = myParser.getText(); 
         Log.d(name+" -->",myParser.getText()); 
        } 
        else {} 
        break; 
       case XmlPullParser.END_TAG: 
      } 
      event = myParser.next(); 
     } 
     parsingComplete = false; 
    } 

    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

Jetzt wird nicht mein log etwas zurückgeben Ursache myParser.getText null ist, aber wenn ich nur den Namen drucken es wird mir tatsächlich den Knoten zurück. getAttributeValue funktioniert, aber ich brauche es gerade in diesem Fall

else if(name.equals("programme")){ 
         hour = myParser.getAttributeValue(null,"start"); 
         Log.d(name+" -->",hour); 
+0

Mögliche Duplikat [XmlResourc eParser.getText() liefert null] (http://stackoverflow.com/questions/32685464/xmlresourceparser-gettext-returning-null) –

Antwort

0

Ich weiß, ich bin spät, aber ich möchte simple framework für das Parsen von XML einzuführen.

diese Bibliothek hinzufügen, indem Sie diese Zeile zur build.gradle von App-Modul

compile 'org.simpleframework:simple-xml:2.5' 

unten ist der Code, den Sie analysieren die XML

-Code

public class TestDriveTv { 

    public static void main(String[] args) throws Exception{ 

     String path = "http://tvprofil.net/xmltv/data/rai-1.it/weekly_rai-1.it_tvprofil.net.xml"; 
     URL url = new URL(path); 
     HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); 
     httpURLConnection.connect(); 


     Serializer serializer = new Persister(); 

     Tv tv = serializer.read(Tv.class, httpURLConnection.getInputStream()); 

     printText(tv.getSource_data_url()); 
     printText(tv.getSource_info_name()); 
     printText(tv.getSource_info_url()); 
     printText("\n"); 

     for (Programme programme:tv.getProgrammes()){ 

      printText("##Program##"); 

      printText(programme.getChannel()); 
      printText(programme.getStart()); 
      printText(programme.getStop()); 
      printText(programme.getTitle()); 
      printText(programme.getCategory()); 
      printText(programme.getDesc()); 

      printText("\n"); 
     } 

    } 

    public static String getPath() { 
     return Paths.get("").toAbsolutePath().toString(); 
    } 

    public static void printText(String text) { 
     System.out.println("" + text); 
    } 
} 
kann helfen

Fernseher

@Root(name = "tv", strict = false) 
public class Tv { 

    @Attribute(name = "source-data-url", required = false) 
    private String source_data_url; 

    @Attribute(name = "source-info-name", required = false) 
    private String source_info_name; 

    @Attribute(name = "source-info-url", required = false) 
    private String source_info_url; 

    @ElementList(name = "programme",inline = true, required = false) 
    private List<Programme> programmes; 

    public String getSource_data_url() { 
     return source_data_url; 
    } 

    public void setSource_data_url(String source_data_url) { 
     this.source_data_url = source_data_url; 
    } 

    public String getSource_info_name() { 
     return source_info_name; 
    } 

    public void setSource_info_name(String source_info_name) { 
     this.source_info_name = source_info_name; 
    } 

    public String getSource_info_url() { 
     return source_info_url; 
    } 

    public void setSource_info_url(String source_info_url) { 
     this.source_info_url = source_info_url; 
    } 

    public List<Programme> getProgrammes() { 
     return programmes; 
    } 

    public void setProgrammes(List<Programme> programmes) { 
     this.programmes = programmes; 
    } 
} 

Kanal

@Root(name = "channel", strict = false) 
public class Channel { 

    @Attribute(name = "id", required = false) 
    private String id; 

    @Element(name = "display-name", required = false) 
    private String display_name; 

    @Element(name = "url", required = false) 
    private String url; 

    @Element(name = "icon", required = false) 
    private String icon; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getDisplay_name() { 
     return display_name; 
    } 

    public void setDisplay_name(String display_name) { 
     this.display_name = display_name; 
    } 

    public String getUrl() { 
     return url; 
    } 

    public void setUrl(String url) { 
     this.url = url; 
    } 

    public String getIcon() { 
     return icon; 
    } 

    public void setIcon(String icon) { 
     this.icon = icon; 
    } 
} 

Programm

@Root(name = "programme", strict = false) 
public class Programme { 

    @Attribute(name = "channel", required = false) 
    private String channel; 

    @Attribute(name = "start", required = false) 
    private String start; 

    @Attribute(name = "stop", required = false) 
    private String stop; 

    @Element(name = "title", required = false) 
    private String title; 

    @Element(name = "category", required = false) 
    private String category; 

    @Element(name = "desc", required = false) 
    private String desc; 

    public String getChannel() { 
     return channel; 
    } 

    public void setChannel(String channel) { 
     this.channel = channel; 
    } 

    public String getStart() { 
     return start; 
    } 

    public void setStart(String start) { 
     this.start = start; 
    } 

    public String getStop() { 
     return stop; 
    } 

    public void setStop(String stop) { 
     this.stop = stop; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public String getCategory() { 
     return category; 
    } 

    public void setCategory(String category) { 
     this.category = category; 
    } 

    public String getDesc() { 
     return desc; 
    } 

    public void setDesc(String desc) { 
     this.desc = desc; 
    } 
} 

Ausgabe

http://tvprofil.net/xmltv/ 
Phazer XML servis 4.6 
http://tvprofil.net 


##Program## 
rai-1.it 
20160607060000 +0200 
20160607063000 +0200 
Il caffè di Raiuno 
null 
null 


##Program## 
rai-1.it 
20160607063000 +0200 
20160607064300 +0200 
TG 1 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607064300 +0200 
20160607064500 +0200 
CCISS Viaggiare informati 
vijesti 
Lo spazio dedicato a chi si mette in viaggio. Informazioni su viabilità, condizioni meteorologiche, interruzioni stradali e percorsi alternativi con aggiornamenti in tempo reale. 


##Program## 
rai-1.it 
20160607064500 +0200 
20160607064900 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607064900 +0200 
20160607065000 +0200 
Che tempo fa, informazione 
vijesti 
null 


##Program## 
rai-1.it 
20160607065000 +0200 
20160607065500 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607065500 +0200 
20160607070000 +0200 
Parlamento Telegiornale 
vijesti 
Un breve panorama quotidiano sulle sedute di Camera e Senato. Un'agenda sull'attività parlamentare del giorno. 


##Program## 
rai-1.it 
20160607070000 +0200 
20160607071000 +0200 
TG 1 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607071000 +0200 
20160607073000 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607073000 +0200 
20160607073300 +0200 
TG 1 L.I.S. 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607073300 +0200 
20160607075300 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607075300 +0200 
20160607075500 +0200 
Che tempo fa, informazione 
vijesti 
null 


##Program## 
rai-1.it 
20160607075500 +0200 
20160607080000 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607080000 +0200 
20160607082500 +0200 
TG 1 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607082500 +0200 
20160607082700 +0200 
Che tempo fa, informazione 
vijesti 
null 


##Program## 
rai-1.it 
20160607082700 +0200 
20160607090000 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607090000 +0200 
20160607090300 +0200 
TG 1 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607090300 +0200 
20160607090500 +0200 
Che tempo fa, informazione 
vijesti 
null 


##Program## 
rai-1.it 
20160607090500 +0200 
20160607093000 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607093000 +0200 
20160607093500 +0200 
TG1 FLASH 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607093500 +0200 
20160607100000 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607100000 +0200 
20160607100500 +0200 
TG 1 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607100500 +0200 
20160607104500 +0200 
Unomattina Estate 
vijesti 
Spazio alla cronaca, all'attualità, alla politica, al costume e al sociale con collegamenti con le sedi regionale e estere. In collaborazione con il Tg1, la conduzione è stata affidata a Mia Ceran e Alessio Zucchini, mentre la postazione web, dedicata alle agenzie e ai giornali esteri, sarà occupata da Antonia Varini. 


##Program## 
rai-1.it 
20160607104500 +0200 
20160607113000 +0200 
Reef Doctors - dottori a Hope Island, serie, Oltre la paura 
serija 
TELEFILM Reef Doctors - dottori a Hope Island - Oltre la paura 1^ Visione RAI. 


##Program## 
rai-1.it 
20160607113000 +0200 
20160607133000 +0200 
Don Matteo 6 - st 06 
serija 
La Rai Radiotelevisione Italiana presenta Don Matteo 6 - Francesca e il lupo - La giostra dei desideri. 
Lo chiamano il detective al servizio di Dio: è il prete investigatore, astuto e simpatico che concilia la tradizionale missione pastorale con la passione per l'investigazione. È Don Matteo Bondini. 


##Program## 
rai-1.it 
20160607133000 +0200 
20160607140000 +0200 
TELEGIORNALE 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607140000 +0200 
20160607140500 +0200 
TG1 Economia 
vijesti 
Quotidiano di informazione sull'Azienda Italia A cura della Redazione Economico Sindacale. 


##Program## 
rai-1.it 
20160607140500 +0200 
20160607153500 +0200 
Estate in diretta 
show 
Dalle ore 14.05 alle ore 15.50 Conduce: Arianna Ciampoli Dalle ore 16.40 alle ore 18.40 Conducono: Eleonora Daniele e Salvo Sottile Estate in diretta è un programma di attualità, cronaca e spettacolo. Sarà una grande finestra su tutti gli avvenimenti dellestate raccontati in studio e approfonditi da collegamenti in diretta e da servizi fumati. Un grande racconto popolare che vuole coinvolgere e appassionare il pubblico a casa sui grandi temi di interesse generale. La prima parte del programma s... (more at http://tvprofil.net) 


##Program## 
rai-1.it 
20160607153500 +0200 
20160607162700 +0200 
SOAP Legami 
null 
null 


##Program## 
rai-1.it 
20160607162700 +0200 
20160607163000 +0200 
Che tempo fa, informazione 
vijesti 
null 


##Program## 
rai-1.it 
20160607163000 +0200 
20160607164000 +0200 
TG 1 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607164000 +0200 
20160607184500 +0200 
Estate in diretta 
show 
Dalle ore 14.05 alle ore 15.50 Conduce: Arianna Ciampoli Dalle ore 16.40 alle ore 18.40 Conducono: Eleonora Daniele e Salvo Sottile Estate in diretta è un programma di attualità, cronaca e spettacolo. Sarà una grande finestra su tutti gli avvenimenti dellestate raccontati in studio e approfonditi da collegamenti in diretta e da servizi fumati. Un grande racconto popolare che vuole coinvolgere e appassionare il pubblico a casa sui grandi temi di interesse generale. La prima parte del programma s... (more at http://tvprofil.net) 


##Program## 
rai-1.it 
20160607184500 +0200 
20160607200000 +0200 
Reazione a Catena, quiz 
show 
null 


##Program## 
rai-1.it 
20160607200000 +0200 
20160607203000 +0200 
TELEGIORNALE 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607203000 +0200 
20160607233000 +0200 
Wind Music Awards 2016, musica 
null 
null 


##Program## 
rai-1.it 
20160607233000 +0200 
20160607233300 +0200 
TG1 60 Secondi 
vijesti 
Segui gli appuntamenti quotidiani del Tg1, rivedi on line l'ultima edizione. Entra nel sito e scopri tutte le rubriche. 


##Program## 
rai-1.it 
20160607233300 +0200 
20160608000000 +0200 
Wind Music Awards 2016, musica 
null 
null 


##Program## 
rai-1.it 
20160608000000 +0200 
20160608012000 +0200 
Porta a Porta 
vijesti 
La seconda serata di Rai Uno nel salotto di Bruno Vespa: con i suoi ospiti approfondisce i temi di attualità, cronaca e politica. 
1

ich die Variablen zu übernehmen werde Sie channel, hour, programme, description sind Variablen Klasse deklariert? Ich sehe nicht, wo diese deklariert sind, aber ich will sichergehen.

Was getText() Ich glaube, Sie brauchen, um dies tatsächlich im Fall TEXT verwenden, nicht das START_TAG

getText

Added in API-Ebene 1 String getText()

Gibt den Textinhalt des aktuellen Ereignisses als String zurück. Der zurückgegebene Wert hängt vom aktuellen Ereignistyp ab, z. B. für TEXT-Ereignis. ist Elementinhalt (dies ist der typische Fall, wenn next() verwendet wird). Eine detaillierte Beschreibung der möglichen zurückgegebenen Werte für verschiedene Ereignistypen finden Sie unter Beschreibung von nextToken().

https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html#getText()

+0

Arbeitete, thak Sie. – Lucas