2016-11-09 5 views
0
TextView Naziv[]; 
    TextView Id[]; 
    int a = 0; 

    //ovaj primjer sam nasao na netu, treba parsirat XML 
    //ali nisam siguran da li treba podatke parsirat u ovoj klasi ili u nekoj drugoj 
    //probaj to skuzit 


    try{ 
     String address = "http://www.dajsve.com/rss.ashx?svigradovi=1"; 
     URL gradoviXmlUrl = new URL(address); 

     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder db = dbf.newDocumentBuilder(); 
     Document doc = db.parse(gradoviXmlUrl.openStream()); 

     doc.getDocumentElement().normalize(); 

     NodeList nodeList = doc.getElementsByTagName("Grad"); 

     Naziv = new TextView[nodeList.getLength()]; 

     List<Grad> gradoviLista = null; 

     for(int i=0; i<nodeList.getLength(); i++){ 
      Element element = (Element) nodeList.item(i); 
      NodeList nazivGrada = element.getElementsByTagName("Naziv"); 
      NodeList idGrada = element.getElementsByTagName("Id"); 
      Element nazivGradaElement = (Element) nazivGrada.item(i); 
      Element idGradaElement = (Element) idGrada.item(i); 
      String gradNaziv = nazivGradaElement.getAttribute("Naziv"); 


      /*Grad grad = null; 
      grad.setNaziv(nazivGrada); 
      grad.setId(idGradaElement); 


      gradoviLista.add(idGradaElement, nazivGradaElement);*/ 

     } 

     a = nodeList.getLength(); 
     //ovdje u varijablu zapisujem broj gradova, koje kasnije koristim samo za provjeru u main aktivitiju 

Der Abruf von Web-Service funktioniert, in Variable a ich die Länge von Elementen speichern, aber die Speicherung in Variablen funktioniert nicht.So speichern Sie XML in Liste in Android Studio

Element element = (Element) nodeList.item(i); 
      NodeList nazivGrada = element.getElementsByTagName("Naziv"); 
      NodeList idGrada = element.getElementsByTagName("Id"); 
      Element nazivGradaElement = (Element) nazivGrada.item(i); 
      Element idGradaElement = (Element) idGrada.item(i); 
      String gradNaziv = nazivGradaElement.getAttribute("Naziv"); 

Dieser Code funktioniert nicht.

dies ist das xml: http://www.dajsve.com/rss.ashx?svigradovi=1 Kann mir jemand helfen?

+0

was tut Die Knotenliste enthält? –

+0

alle Elemente von xml .. –

+0

fügen Sie Ihre Stack-Trace, haben Sie wahrscheinlich eine classCastException richtig? –

Antwort

0

nodeList.item(i); den Knoten an der indexth Position in den NodeList zurückkehrt, ist ein Knoten nicht immer ein Element, so dass Sie ein ClassCastException bekommen werden:

Element element = (Element) nodeList.item(i); 

So stellen Sie sicher if(FPN.getNodeType() == Node.ELEMENT_NODE) zu überprüfen, bevor ein Node zu einem Casting Element

Oder können Sie:

Node node = nodeList.item(i); 
      String gradNaziv = getNodeValueByTagName(node ,"Naziv"); 
+0

Ich habe so etwas versucht, aber funktioniert immer noch nicht. Kannst du den Code für mein Beispiel schreiben..getNodeValueByTagName existiert nicht .. –

+0

Was sind deine Importe, ist es wahrscheinlich die falsche Klasse –

Verwandte Themen