dom4j解析xml

注:本人参考这位大神的代码链接在此
改程序需要dom4j.jarjar包下载地址

package com.xie.studyXml;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class Sxm01 {
public static void main(String[] args) {
        String xmlString = "<html>" + "<head>" + "<title>dom4j解析一个例子</title>" + "<script>"
                + "<username>xiexx</username>" + "<password>123456</password>" + "</script>" + "</head>" + "<body>"
                + "<result>0</result>" + "<form>" + "<balance>1000</balance>" + "<subID>36242519880716</subID>"
                + "</form>" + "</body>" + "</html>";

        Map map=xmltoMap(xmlString);

        Iterator mes=map.keySet().iterator();
        while(mes.hasNext()){
            String key=mes.next().toString();
            String value=map.get(key).toString();
            System.out.println(key+" : "+value);
        }
}

public static Map xmltoMap(String xml){
    Document doc=null;
    Map<String,String> map=new HashMap<>();
    try {
        //将字符串转化为XML
        doc=DocumentHelper.parseText(xml);
        //获取根节点
        Element rootElt=doc.getRootElement();
        System.out.println("根节点名字:"+rootElt.getName());
        //获取跟节点下的子节点
        Iterator iter=rootElt.elementIterator("head");
        //遍历head节点
        while(iter.hasNext()){
            Element hea=(Element) iter.next();
            String title=hea.elementTextTrim("title");
            map.put("title", title);
            Iterator scr=hea.elementIterator("script");
            while(scr.hasNext()){
                Element scra=(Element) scr.next();
                String username=scra.elementTextTrim("username");
                map.put("username", username);
                String password=scra.elementTextTrim("password");
                map.put("password",password);
            }
        }

        Iterator body=rootElt.elementIterator("body");
        //遍历body节点
        while(body.hasNext()){
            Element body1=(Element) body.next();
            String result=body1.elementTextTrim("result");
            map.put("result", result);
            Iterator fro=body1.elementIterator("form");
            while(fro.hasNext()){
                Element fro1=(Element) fro.next();
                String balance=fro1.elementTextTrim("balance");
                String subID=fro1.elementTextTrim("subID");
                map.put("balance", balance);
                map.put("subID", subID);
            }
        }
    } catch (DocumentException e) {
        e.printStackTrace();
    }

    return map;

}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值