Dom4j 解析


//得到一个标签对象及节点后的文本
public class Demo1 {
    public static void main(String[] args) throws DocumentException {
        //使用Dom4j解析Book.xml, 得到第二本书的书名儿
        //创建解析器对象
        SAXReader  reader = new SAXReader();
        //得到整个xml文档的Docuemnt对象
        Document doc = reader.read("src/Book.xml");
        //得到根节点
        Element root = doc.getRootElement();
    //System.out.println(root.getName());        //--书架    
        
        //Element zi = root.element("书");//得到第一个书标签对象
        //System.out.println(zi.getName());//得到标签名字        --书
        List list = root.elements();//得到根节点的所有子标签节点
        Element secondBook = (Element) list.get(1);//得到第二个书标签对象
        //System.out.println(secondBook.getName());    //--书
        Element child = secondBook.element("书名");//得到 "书名" 节点对象
        
        //Element child = secondBook.element("单价");//--10
    //    Element child = secondBook.element("作者");//得到 "作者" 节点对象  
        System.out.println(child.getText());//得到节点后的文本

    }

}


//也可以遍历得到所有标签

public class Demo2 {
    public static void main(String[] args) throws DocumentException {
        //使用Dom4j解析Book.xml, 得到所有的标签
        SAXReader reader = new SAXReader();
        Document doc =reader.read("src/Book.xml");
        
        Element root = doc.getRootElement();
        treeWalk(root);
    }

    private static void treeWalk(Element root) {
        System.out.println(root.getName());//显示标签名称
        //得到所有的子节点
        //root.nodeCount()得到子节点的个数
        for(int i=0;i         {
            Node node = root.node(i); //根据下标得到一个节点对象
            //判断节点类型是不是标签类型
            if(node instanceof Element)
            {
                treeWalk((Element)node);
            }
        }
    }
}



附:

Dom4j的jar包地址http://download.csdn.net/detail/qq_31780525/9623797

book.xml内容



<书架>
  <书 出版社="呵呵">
    <书名>金瓶梅  
    <作者>陈冠希  
    <单价>10  
    <批发价>20
   
  <书>
    <书名>葵花宝典  
    <作者>东方不败  
    <单价>10
 



你可能感兴趣的:(Dom4j 解析)