首页 > 技术文章 > dom4j

dengheng 2016-08-23 13:19 原文

1,介绍
    
DOM4J是dom4j.org出品的一个开源XML解析包。Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。
 
2使用前引入jar包
 
3:使用方法:中文帮助文档地址 : http://download.csdn.net/detail/zdingo2007/1962475
读写XML文档主要依赖于org.dom4j.io包,其中提供DOMReaderSAXReader两类不同方式,而调用方式是一样的。这就是依靠接口的好处。
4,DOM4j中,
   首先要获取document对象,就是创建一个document文档
获得Document对象的方式有四种:
      
1.读取XML文件,获得document对象              
   SAXReader reader = new SAXReader();                
       Document   document = reader.read(new File("books.xml"));  
2.解析XML形式的文本,得到document对象.  
    String text = "<book></book>";              
    Document document = DocumentHelper.parseText(text);  
3.主动创建document对象.  
     Document document = DocumentHelper.createDocument();              //创建根节点         
Element root = document.addElement("book"); 
 4   //创建一个DocumentFactory对象
        
           DocumentFactory factory = new DocumentFactory();
           //通过factory对象创建一个doc文件对象
           Document doc = factory.createDocument();
 
        
 
5.Element有几个重要的方法:
l         addComment:添加注释
l         addAttribute:添加属性
l         addElement:添加子元素
 
Element root = document.addElement("root");
//添加一个节点
root.addElement("", "");
set方法
//设置一个属性和值
root.setAttributeValue("name", "12");
//更改根节点的名字
root.setName("");
// 给节点创建一个父节点
nodes.setParent(root);
//给节点添加文本内容
root.setText("");
get方法
//获得节点的名字
root.getName()
//获得节点的的文本内容
root.getText();
//获取父节点
root.getParent();
//获得根节点
doc.getRootElement()
 
 
//首先创建一个文档document
        Document document = DocumentHelper.createDocument();
        //创建根节点
        Element root =DocumentHelper.createElement("book");
        root.addComment("根节点book");
        //把创建的根节点放入文档对象中
        document.setRootElement(root);
        //更改root的名字
        //root.setName("123");
        //给节点添加属性(方法一)
        root.setAttributeValue("name", "bo1");
        root.setAttributeValue("value", "bo2");
        //给节点添加子节点
        Element root1 =root.addElement("book1");
        root1.addEntity(null, "给book加的add--Entity");
        root.addElement("book2");
        Element root3 =DocumentHelper.createElement("book3");
        root.add(root3);
        root3.addComment("这是book3");
        root3.setText("给book3加的(set)text");
        //给节点添加属性(方法二)
        root.addAttribute("54321", "12345");
        //document.addComment("这是一个xml文档");
        //root.addComment("这是节点root注释");
        //输出到控制台
          XMLWriter xmlWriter = new XMLWriter();
          xmlWriter.write(document);
          //输出到文件
 
          OutputFormat format = OutputFormat.createPrettyPrint();// 创建文件输出的时候,自动缩进的格式                    
          format.setEncoding("UTF-8");//设置编码  
          XMLWriter writer = new XMLWriter(new FileWriter("src//book.xml"),format);  
          writer.write(document);  
          writer.close();
 
 
 
 
 

推荐阅读