【问题标题】:Parse Xml returns only 1 itemParse Xml 仅返回 1 个项目
【发布时间】:2016-06-20 07:33:04
【问题描述】:

我想获取这个 xml 文档的 File 节点,谁能帮我归档这个问题?

我有这个 xml 文档:

<?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>

我需要从中获取所有File-items。

我有这段代码,但我只得到 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);
}

【问题讨论】:

    标签: java android xml loops parsing


    【解决方案1】:

    这一行是错误的:

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

    应该是

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

    【讨论】:

      猜你喜欢
      • 2018-08-29
      • 2016-08-04
      • 2014-09-15
      • 2016-12-06
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      相关资源
      最近更新 更多