java使用jdom架包解析xml字符串dom原理并保存map对象

今天给出一个java使用jdom架包解析xml字符串而非xml文件的过程,并将信息保存在map对象中。各个函数方法都有详细解释,相信大家能看懂。

	Map<String,String> xmlInfo = new HashMap<String,String>();
		//创建一个新的字符串
        StringReader read = new StringReader(xmlStream);
        //创建新的输入源SAX解析器将使用 InputSource 对象来确定如何读取 XML 输入
        InputSource source = new InputSource(read);
        //创建一个新的SAXBuilder
        SAXBuilder sb = new SAXBuilder();
        try {
			//通过输入源构造一个Document
			Document doc = sb.build(source);
			//取的根元素
            Element root = doc.getRootElement();
            //获得根元素的子节点
            List childList = root.getChildren();
			//childList是一个list对象
            Element headChild = (Element) childList.get(0);
			//从中挨个取出元素
            Element argumentChild = (Element) childList.get(1);			
            xmlInfo.put("operate", argumentChild.getAttributeValue("operate"));
			//getAttributeValue获取指定属性的值
            xmlInfo.put("entityName", argumentChild.getAttributeValue("entityName"));
            //获得head元素的子节点
            List headSonList = headChild.getChildren();
            Iterator listhead = headSonList.iterator();
			//使用迭代器来遍历此对象的每个元素
            while(listhead.hasNext()){
            	Element element = (Element)listhead.next();
            	xmlInfo.put(element.getAttributeValue("name"),element.getValue());
            }
            //获得arguments结点的子节点
            List argumentSonList = argumentChild.getChildren();
            Element fisrtParam = (Element) argumentSonList.get(0);
            //System.out.println("fisrtParam:" + fisrtParam.getName());
            argumentSonList =  fisrtParam.getChildren();
            Element secondParam = (Element) argumentSonList.get(0);
            //System.out.println("secondParam:" + secondParam.getName());
            argumentSonList = secondParam.getChildren();
            Iterator listargument = argumentSonList.iterator();
            while(listargument.hasNext()){
            	Element element = (Element)listargument.next();
            	xmlInfo.put(element.getAttributeValue("name"),element.getValue());
            }
            //System.out.println(xmlInfo);
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}










   

你可能感兴趣的:(java,xml,list,String,iterator)