2011-01-17 8 views
0

Ich habe diesen Code, aber der Toast wird keine Nachricht anzeigen, was mit meinem Code falsch ist .. Ich kann den Wert von Link, Linknext aber Titel wird keinen Wert bringen. (Ich bin nicht sehr hell, mit dem Schreiben von Code, so wenden Sie sich bitte etwas vorschlagen, dass Sie sich anfühlen kann.Parsing XML wird nicht alle Artikel anzeigen

 final Button button = (Button) findViewById(R.id.Button01); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 


      try { 

       URL url = new URL(
         "http://somelink.com=" + Link.setFirst_link); 
       DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
       DocumentBuilder db = dbf.newDocumentBuilder(); 
       Document doc = db.parse(new InputSource(url.openStream())); 
       doc.getDocumentElement().normalize(); 

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

       /** Assign textview array lenght by arraylist size */ 



       for (int i = 0; i < nodeList.getLength(); i++) { 

        Node node = nodeList.item(i); 


        Element fstElmnt = (Element) node; 
        NodeList nameList = fstElmnt.getElementsByTagName("link"); 
        Element nameElement = (Element) nameList.item(0); 
        nameList = nameElement.getChildNodes(); 
        String img = (((Node) nameList.item(0)).getNodeValue()); 

        NodeList websiteList = fstElmnt.getElementsByTagName("linknext"); 
        Element websiteElement = (Element) websiteList.item(0); 
        websiteList = websiteElement.getChildNodes(); 
        String nextlink = (((Node) websiteList.item(0)).getNodeValue()); 
        Link.setFirst_link = nextlink; 
        Drawable drawable = LoadImageFromWebOperations(img); 
        imgView.setImageDrawable(drawable); 

        NodeList titleList = fstElmnt.getElementsByTagName("title"); 
        Element titleElement = (Element) titleList.item(0); 
        websiteList = titleElement.getChildNodes(); 
        String title = (((Node) titleList.item(0)).getNodeValue()); 

        Context context = getApplicationContext(); 
        CharSequence text = title; 
        int duration = Toast.LENGTH_SHORT; 

        Toast toast = Toast.makeText(context, text, duration); 
        toast.show(); 

       } 
      } catch (Exception e) { 
       System.out.println("XML Pasing Excpetion = " + e); 
      } 



     } 
    }); 


    /** Set the layout view to display 

*/ }

ist die XML-Datei

<?xml version="1.0"?> 
<maintag> 
    <item> 
    <link>http://image.com/357769.jpg?40</link> 
    <linknext>http://www.image.com</linknext> 
    <title>imagename</title> 
    </item> 
</maintag> 

Antwort

1
Element titleElement = (Element) titleList.item(0); 
titleList = titleElement.getChildNodes();   // <<< here you wrote websiteList instead (copy & paste error I think ;) 
+0

, die Arbeit werde nicht – nomie

+0

Warum glauben Sie, dass dies nicht funktioniert? Haben Sie einen Fehler? – lweller

+0

Sie können [Einfaches XML] (http://www.google.ru/url?sa=t&source=web&cd=2&ved=0CCQQFjAB&url= http: // si mple.sourceforge.net/&ei=o2nvTbPJHMKe-QaTsrmeECA&usg=AFQjCNE40FfELo6ftmZBNkdIi9a-W5QIzQ&sig2=VFd2mp8YdqVBSD-pmEwsvw) um die XML-Datei im Objekt zu lesen, ihren Zustand zu ändern und zurückzuschreiben. Verwenden Sie diese Bibliothek. Es wird alle Parsing-Arbeit erledigt und gibt Ihnen die Antwort als ein Objekt zurück, so dass Sie leicht damit umgehen können. –