H__D  

DOM4J介绍

  dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP,使用需要引用dom4j.jar包

XML生成及解析

  代码如下:

  

 1 package com.test.dom4j;
 2 
 3 import java.io.File;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 import java.io.Writer;
 7 import java.util.Iterator;
 8 
 9 import org.dom4j.Document;
10 import org.dom4j.DocumentException;
11 import org.dom4j.DocumentHelper;
12 import org.dom4j.Element;
13 import org.dom4j.io.OutputFormat;
14 import org.dom4j.io.SAXReader;
15 import org.dom4j.io.XMLWriter;
16 
17 public class TestDom4j {
18 
19     public static void main(String[] args) {
20         createXml();
21         parserXml();
22     }
23 
24     // Dom4j创建Xml文档
25     public static void createXml() {  
26         // 创建一个文档对象  
27         Document document = DocumentHelper.createDocument(); 
28         // 在根节点添加元素  
29         Element conpany = document.addElement("conpany"); 
30         // 在conpany下添加子节点  
31         Element department = conpany.addElement("department"); 
32         // 在department下添加子节点  
33         Element employee = department.addElement("employee"); 
34         // 给employee节点添加内容  
35         employee.setText("123"); 
36         // 给employee节点添加内容  
37         employee.addAttribute("name", "employee1");
38         try {  
39             Writer fileWriter = new FileWriter("src/test-dom4j-create.xml"); 
40             
41             //输出格式
42             OutputFormat xmlFormat = new OutputFormat();
43             //设置编码
44             xmlFormat.setEncoding("UTF-8");
45             // 设置换行 
46             xmlFormat.setNewlines(true);
47             //自动缩进
48             xmlFormat.setIndent(true);
49             // 使用4个空格进行缩进, 可以兼容文本编辑器 
50             xmlFormat.setIndent("    "); 
51             
52             //輸出
53             XMLWriter xmlWriter = new XMLWriter(fileWriter,xmlFormat);  
54             xmlWriter.write(document);  
55             xmlWriter.close();  
56         } catch (IOException e) {  
57             System.out.println(e.getMessage());
58         }
59 
60     }
61     
62     
63     // Dom4j解释Xml文档  
64    public static void parserXml() {  
65        //文件
66        File inputXml = new File("src/test-dom4j-create.xml");  
67        //解析器
68        SAXReader saxReader = new SAXReader();  
69        try {  
70            //得到文档
71            Document document = saxReader.read(inputXml);  
72            //根目录
73            Element conpany = document.getRootElement();  
74            for (Iterator i = conpany.elementIterator(); i.hasNext();) {  
75                Element department = (Element) i.next();  
76                for (Iterator j = department.elementIterator(); j.hasNext();) { // 遍例节点  
77                    Element employee = (Element) j.next();  
78                    //获取元素的文本以及属性
79                    System.out.println(employee.getName() + "\t" + employee.getText() + "\t" + employee.attributeValue("name"));  
80                }  
81  
82            }  
83        } catch (DocumentException e) {  
84            System.out.println(e.getMessage());  
85        }  
86    }   
87 }

 

 

生成的文本:

  

控制台输出:

  

 

posted on 2016-10-18 15:45  H__D  阅读(314)  评论(0编辑  收藏  举报