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();
		}










评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值