当前位置: 代码迷 >> J2SE >> 怎么将解析xml文件得到结果存到MAP中
  详细解决方案

怎么将解析xml文件得到结果存到MAP中

热度:84   发布时间:2016-04-24 12:23:29.0
如何将解析xml文件得到结果存到MAP中
各位兄弟同仁,我现在用dom解析xml,但不知道怎样把得到结果放入到MAP中去,希望哪位能给出一些代码或是思路 
我用List存过,但不好,所以想换成用map来存放  
XML code
<?xml version="1.0" encoding="UTF-8"?><elements>        <student sid="001">        <sheet_Amount>3456</sheet_Amount>       <sheet_Approve>approved</sheet_Approve>        <sheet_Name>ruantongdongli</sheet_Name>    <sheet_ID>1111111111111111</sheet_ID>    <sheet_Date>20090524</sheet_Date>   </student></elements>



用List存时我的代码
Java code
package com.ibm.filenet.edu;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import javax.xml.parsers.*;import org.w3c.dom.*;import org.xml.sax.SAXException;public class ParseXML {    /*public static void main(String[] args) {        List<Object> list = new ArrayList<Object>();         ParseXML instance = new ParseXML();        String filePath = "C:\\Source\\xml\\workflowElement.xml";         list = instance.parse(filePath, list);        Iterator iterator = list.iterator();        System.out.println("**************************");        while(iterator.hasNext()){            System.out.println(iterator.next().toString());        }            }*/                        public List<Object> parse(String filePath, List<Object> list){        //List<Object> list = null;        try {            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();            DocumentBuilder db = dbf.newDocumentBuilder();            //File file = new File("C:\\Source\\xml file\\xml\\XML ppt\\xml day4\\dom_ sax\\sax\\candidate.xml");            Document dom = db.parse(filePath);            System.out.println("file path: " + dom.getDocumentURI());            Element root = dom.getDocumentElement(); //root node            list = Iterator(root, list);            //System.out.println("********************");            //Iterator  iterator = list.iterator();            //while(iterator.hasNext()){            //    System.out.println(iterator.next().toString());            //}            //return list;        } catch (ParserConfigurationException e) {            e.printStackTrace();        } catch (SAXException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return list;            }            public List<Object> Iterator(Element root, List<Object> list) {        NodeList nodelist = root.getChildNodes();        //List<Object> list = new ArrayList<Object>();        for (int i = 0; i < nodelist.getLength(); i++) {            Node node = nodelist.item(i);                        if (node instanceof Text) {                String value = node.getNodeValue();                if (value != null && !value.trim().equals("")) {                    //System.out.println("content: " + value);                    list.add(value);                }            }            if (node instanceof Element) {                //System.out.println("node: " + node.getNodeName());                list.add( node.getNodeName());                Iterator( (Element)node, list);            }        }        return list;    }        }


------解决方案--------------------
....你想用什么做键值,什么做 value 值,直接放进去不就可以了吗
------解决方案--------------------
是啊,你要想好用什么做key,再map里是不能重复的呀
------解决方案--------------------
  相关解决方案