使用dom4j操作XML

  DOM4J介绍

  DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点。 

  DOM4J的使用

  首先下载dom4j的JAR包,我用的版本是1.6.1,下载地址:http://download.csdn.net/detail/onroads/9721574

  使用方法《使用JDOM操作XML》,链接:http://www.cnblogs.com/centor/p/6215082.html

  另外,解压后用到dom4j01.6.1.jar文件,还有一个lib/jaxen-1.1-beta-6.jar文件,一般也需要引入,否则执行时可能抛出java.lang.NoClassDefFoundError:org/jaxen/JaxenException异常。DOM4J的主要接口如下:

  使用DOM4J

   生成xml例程:

 1 package com.xml;
 2 
 3 import java.io.File;
 4 import java.io.FileOutputStream;
 5 
 6 import org.dom4j.Attribute;
 7 import org.dom4j.Document;
 8 import org.dom4j.DocumentHelper;
 9 import org.dom4j.Element;
10 import org.dom4j.io.OutputFormat;
11 import org.dom4j.io.XMLWriter;
12 
13 
14 public class XMLtest {
15 
16     public static void main(String args[]) throws Exception {
17 
18         String[] names = {"鸣人","佐助","小樱"};
19         String[] emails = {"mingren@163.com","zuozhu@163.com","xiaoying@163.com"};
20         String[] ids ={"H1","H2","H3"};
21         
22         Document doc = DocumentHelper.createDocument();
23         Element addresslist = doc.addElement("addresslist");    
24         
25         for (int i = 0; i < 3; i++) {
26             Element linkman = addresslist.addElement("linkman");
27             Element name = linkman.addElement("name");
28             Element email = linkman.addElement("email");
29             name.setText(names[i]);
30             email.setText(emails[i]);
31             name.setAttributeValue("id", ids[i]);    
32         }
33         
34         OutputFormat format = OutputFormat.createPrettyPrint();
35         format.setEncoding("GBK");
36         try {
37             XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("D:"+File.separator+"person.xml"), format);
38             xmlWriter.write(doc);
39             xmlWriter.close();
40         } catch (Exception e) {
41             e.printStackTrace();
42         }
43     }
44 }

  生成的xml文件:

  

解析XML文件:

 1 package com.xml;
 2 
 3 import java.io.File;
 4 import java.util.Iterator;
 5 
 6 import org.dom4j.Document;
 7 import org.dom4j.Element;
 8 import org.dom4j.io.SAXReader;
 9 
10 public class XMLtest {
11 
12     public static void main(String args[]) throws Exception {
13 
14         File file = new File("D:"+File.separator+"person.xml");
15         SAXReader reader = new SAXReader();
16         Document doc = null;
17         try {
18             doc = reader.read(file);
19             
20         } catch (Exception e) {
21             e.printStackTrace();
22         }
23         
24         Element root = doc.getRootElement();
25         Iterator iterator = root.elementIterator();
26         while(iterator.hasNext()){
27             System.out.println("<linkman>");
28             Element linkman = (Element) iterator.next();
29             System.out.println("  <name id="+ linkman.element("name").attributeValue("id")+">"+linkman.elementText("name")+"</name>");
30             System.out.println("  <email>"+linkman.elementText("email")+"</email>");
31             System.out.println("</linkman>");
32         }
33     }
34 }

解析结果:

原文地址:https://www.cnblogs.com/centor/p/6223071.html