XML读写操作之DOM4J

来源:互联网 发布:淘宝内购群 编辑:程序博客网 时间:2024/05/16 15:17

DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,
同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在
使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。

1.新建一个接口类

package com.wepull.xml2;public interface XmlDocument {/** * 建立XML文档 * @param fileName 文件全路径名称 */ public void createXml(String fileName); /** * 解析XML文档 * @param fileName 文件全路径名称 */ public void parserXml(String fileName); }

2.新建一个实现类

package com.wepull.xml2;import java.io.File;    import java.io.FileWriter;    import java.io.IOException;    import java.io.Writer;    import java.util.Iterator;       import org.dom4j.Document;    import org.dom4j.DocumentException;    import org.dom4j.DocumentHelper;    import org.dom4j.Element;    import org.dom4j.io.SAXReader;    import org.dom4j.io.XMLWriter;    public class Dom4jDemo implements XmlDocument {        public void createXml(String fileName) {            Document document = DocumentHelper.createDocument();            Element employees=document.addElement("employees");            Element employee=employees.addElement("employee");            Element name= employee.addElement("name");            name.setText("ddvip");            Element sex=employee.addElement("sex");            sex.setText("m");            Element age=employee.addElement("age");            age.setText("29");            try {                Writer fileWriter=new FileWriter(fileName);                XMLWriter xmlWriter=new XMLWriter(fileWriter);                xmlWriter.write(document);                xmlWriter.close();            } catch (IOException e) {                System.out.println(e.getMessage());            }        }       public void parserXml(String fileName) {             File inputXml=new File(fileName);             SAXReader saxReader = new SAXReader();             try {                Document document = saxReader.read(inputXml);                Element employees=document.getRootElement();                for(Iterator i = employees.elementIterator(); i.hasNext();){                     Element employee = (Element) i.next();                     System.out.println("父节点"+employee.getName()+" "+employee.getText());                 for(Iterator j = employee.elementIterator(); j.hasNext();){                         Element node=(Element) j.next();                         System.out.println(node.getName()+":"+node.getText());                     }                }            } catch (DocumentException e) {                System.out.println(e.getMessage());            }         System.out.println("dom4j parserXml");        }    }    

3.新建一个xml文件,命名为book.xml

<?xml version="1.0" encoding="UTF-8"?><books>      <book id="12">          <name>thinking in java</name>          <price>85.5</price>      </book>      <book id="15">          <name>Spring in Action</name>          <price>39.0</price>      </book>      <other>    <driver>aaa</driver>    <url>bbb</url>    </other></books>  

4.新建一个测试类

package com.wepull.xml2;/** * 测试四种xml解析方式 */public class TestXML {public static void main(String[] args) {XmlDocument test = new Dom4jDemo();String path = "D:/wepull/TestXML/src/book.xml";String path2= "D:/wepull/TestXML/src/test.xml";test.parserXml(path);test.createXml(path2);}}

5.运行并测试

你会发现当前目录下回生成一个为test.xml的文件

控制台上会打印出解析book.xml的内容