2016-06-20 5 views
0

Ich möchte die File Knoten dieses XML-Dokuments erhalten, kann mir jemand bei der Archivierung dieses Problems helfen?Parse Xml gibt nur 1 Element zurück

Ich habe dieses XML-Dokument:

<?xml version="1.0" encoding="UTF-8"?> 
<Replies> 
<FileList> 
    <File>cip13_test.rts</File> 
    <File>databar_lmt.rts</File> 
    <File>Test3.rts</File> 
    <File>databar2_lmt.rts</File> 
    <File>databar5_lmt.rts</File> 
    </FileList> 
</Replies> 

und ich brauche alle File -Items von diesem zu erhalten.

Ich habe diesen Code, aber ich bekomme nur cip13_test.rtx.

public static String GetFileList(String fileresponse) { 
    String xml = fileresponse; 
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder db = null; 
    InputSource is = new InputSource(); 
    String textToShow = ""; 
    StringBuilder resultsofList = new StringBuilder(); 

    try { 
     db = dbf.newDocumentBuilder(); 
     is.setCharacterStream(new StringReader(xml)); 
     try { 
      Document doc = db.parse(is); 

      NodeList replies = doc.getElementsByTagName("Replies"); 
      for (int i = 0; i < replies.getLength(); i++) { 
       Element element = (Element) replies.item(i); 

       NodeList inkstatus = element.getElementsByTagName("FileList"); 
       for (int i2 = 0; i2 < inkstatus.getLength(); i2++) { 
        Element element2 = (Element) inkstatus.item(i2); 

        NodeList inklevel = element2.getElementsByTagName("File"); 
        for (int i4 = 0; i4 < inklevel.getLength(); i4++) { 
         Element element4 = (Element) inklevel.item(i4); 

         Element line = (Element) inklevel.item(0); 
         if (line == null) { 
          inklevel = element4.getElementsByTagName("File"); 
          line = (Element) inklevel.item(0); 
         } 

         textToShow = getCharacterDataFromElement(line); 
         resultsofList.append(textToShow+","); 
        } 
       } 
      } 
     } catch (SAXException e) { 
      // handle SAXException 
     } catch (IOException e) { 
      // handle IOException 
     } 
    } catch (ParserConfigurationException e1) { 
     // handle ParserConfigurationException 
    } 
    return String.valueOf(resultsofList); 
} 

Antwort

1

Diese Zeile ist falsch:

Element line = (Element) inklevel.item(0); 

Es sollte

sein
Element line = (Element) inklevel.item(i4); 
Verwandte Themen