使用Java解析xml

2017-03-03  本文已影响0人  静候那一米阳光

使用dom4j-1.6.1.jar。
百度网盘下载

【Parser.class】

import org.dom4j.*;
import java.io.File;
import java.util.List;

public class Parser {
    private Element root=null;
    Parser(String file) throws DocumentException {
        SAXReader sax = new SAXReader();//创建一个SAXReader对象
        File xmlFile = new File(file);//根据指定的路径创建file对象
        Document document = sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束
        root = document.getRootElement();//获取根节点
    }
    public Element getRoot(){
        return root;
    }
    public void getNodes(Element node){
        System.out.println("--------------------");
        //当前节点的名称、文本内容和属性
        System.out.println("当前节点名称:"+node.getName());//当前节点名称
        System.out.println("当前节点内容:"+node.getTextTrim());//当前节点内容
        List<Attribute> listAttr=node.attributes();//当前节点的所有属性的list
        for(Attribute attr:listAttr){//遍历当前节点的所有属性
            String name=attr.getName();//属性名称
            String value=attr.getValue();//属性的值
            System.out.println("属性名称:"+name+" 属性值:"+value);
        }
        //递归遍历当前节点所有的子节点
        List<Element> listElement=node.elements();//所有一级子节点的list
        for(Element e:listElement){//遍历所有一级子节点
            this.getNodes(e);//递归
        }
    }
}

【main.class】

public class main {
    public static void main(String[] args) throws Exception {
        Parser p=new Parser("/Users/zdy/Workspace/test.xml");
        p.getNodes(p.getRoot());
    }
}
上一篇下一篇

猜你喜欢

热点阅读