2016-11-09 18 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 

從Web服務提取工作,在變量a我存儲元素的長度,但存儲到變量does not工作。如何在Android Studio中的列表中存儲xml

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"); 

此代碼does not不起作用。

這是xml:http://www.dajsve.com/rss.ashx?svigradovi=1 有人能幫助我嗎?

+0

哪些呢nodeList包含? –

+0

所有元素來自xml .. –

+0

添加你的堆棧跟蹤,你可能有一個classCastException對嗎? –

回答

0

nodeList.item(i);返回在NodeList第index位置的節點,節點並不總是一個元素,所以你會得到一個ClassCastException上:

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

只要確保鑄造Node到前檢查if(FPN.getNodeType() == Node.ELEMENT_NODE)Element

或者你可以使用:

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

我正在嘗試類似的東西,但仍然沒有工作。你可以寫我的例子代碼..getNodeValueByTagName did'nt exists .. –

+0

什麼是你的進口,它可能是錯誤的類 –

相關問題