当前位置: 代码迷 >> Android >> android中怎的从xml文件中解析一个二维数组
  详细解决方案

android中怎的从xml文件中解析一个二维数组

热度:40   发布时间:2016-05-01 13:05:57.0
android中怎样从xml文件中解析一个二维数组
<array>
  <array>
  <string></string>
  <string></string>
  <string></string>
  </array>
  <array>
  <string></string>
  <string></string>
  <string></string>
  </array>
  <array>
  <string></string>
  <string></string>
  <string></string>
  </array>
</array>
XML文件类似以上格式
想把string里的数据提取出来
并保存二维数组形式。由于任务紧急,所以麻烦各位大侠详细指教!!!!!不胜感激

------解决方案--------------------
使用PULL 或者SAX都可以的呀。
PULL示例代码:
Java code
XmlPullParser parser = Xml.newPullParser();        try {            int nTouched = 0;            String result = null;            // 以流的形式获取XML文件            InputStream InputStream = new ByteArrayInputStream(content                    .getBytes());            // 设置输入流已经编码方式            parser.setInput(InputStream, "UTF-8");            // 获取当前的事件类型            int eventType = parser.getEventType();            while (eventType != XmlPullParser.END_DOCUMENT) {                if (eventType == XmlPullParser.START_DOCUMENT) {                    // Utils.writeLogInfo("PopulationQuery", "xml",                    // "Start document");                } else if (eventType == XmlPullParser.END_DOCUMENT) {                    // Utils.writeLogInfo("PopulationQuery", "xml",                    // "Start document");                } else if (eventType == XmlPullParser.START_TAG) {                    // Utils.writeLogInfo("PopulationQuery", "xml", "Start tag "                    // + parser.getName());                    String nodeName = parser.getName();                    if (nodeName.equals("Envelope")) {                        nTouched++;                    } else if (nodeName.equals("Body")) {                        nTouched++;                    } else if (nodeName.equals("baseQueryResponse")) {                        nTouched++;                    } else if (nodeName.equals("out")) {                        nTouched++;                    }                } else if (eventType == XmlPullParser.END_TAG) {                    // Utils.writeLogInfo("PopulationQuery", "xml", "End tag " +                    // parser.getName());                    String nodeName = parser.getName();                    if (nodeName.equals("Envelope")) {                        nTouched--;                    } else if (nodeName.equals("Body")) {                        nTouched--;                    } else if (nodeName.equals("baseQueryResponse")) {                        nTouched--;                    } else if (nodeName.equals("out")) {                        nTouched--;                    }                } else if (eventType == XmlPullParser.TEXT) {                    // Utils.writeLogInfo("PopulationQuery", "xml", "Text " +                    // parser.getText());                    // 读取XML                    result = parser.getText();                }                // 手动的触发下一个事件                eventType = parser.next();            }            return result;        } catch (Exception e) {            e.printStackTrace();        }
  相关解决方案