同jdom,先下载dom4j的jar包,导入到工程,然后可以使用了。下面是两个简单的练习示例。
1.生成xml文件
package com.ebuair.dom4j;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class Dom4jTest1 {
public static void main(String[] args) throws IOException {
//1.创建文档并设置根元素节点的方法:第一种方式
// Document document = DocumentHelper.createDocument();
// Element rootElement = DocumentHelper.createElement("学生列表");
// document.setRootElement(rootElement);
//2.创建文档并设置根元素节点的方法:第二种方式
Element rootElement = DocumentHelper.createElement("学生列表");
Document document = DocumentHelper.createDocument(rootElement);
rootElement.addAttribute("年级", "一年级");
Element studentElement = rootElement.addElement("学生");
Element nameElement = studentElement.addElement("姓名");
Element genderElement = studentElement.addElement("性别");
Element ageElement = studentElement.addElement("年龄");
nameElement.setText("张三");
genderElement.setText("男");
ageElement.setText("20");
OutputFormat format = new OutputFormat(" ", true);
format.setEncoding("gbk");
XMLWriter writer = new XMLWriter();
writer.write(document);
XMLWriter writer2 = new XMLWriter(new FileOutputStream("doc/dom4jstudent.xml"), format);
writer2.write(document);
XMLWriter writer3 = new XMLWriter(new FileWriter("doc/dom4jwriterstudent.xml"), format);
writer3.write(document);
// writer3.flush();
writer3.close();
//Warning: using your own Writer may cause the writer's preferred character encoding to be ignored.
//If you use encodings other than UTF8, we recommend using the method that takes an OutputStream instead.
//Note: as with all Writers, you may need to flush() yours after this method returns
}
}
2.解析xml文档
package com.ebuair.dom4j;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jTest2 {
public static void main(String[] args) throws DocumentException {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("doc/student.xml"));
Element rootElement = document.getRootElement();
System.out.println(rootElement.getName());
for(Iterator<Element> iterator = rootElement.elementIterator(); iterator.hasNext();){
Element element = iterator.next();
System.out.print( element.getName());
for(int i = 0; i < element.attributeCount(); i++){
System.out.print(" " + element.attribute(i).getName() + "=" + element.attribute(i).getValue());
}
System.out.println();
Element nameElement = element.element("姓名");
System.out.println(nameElement.getName() + " : "+ nameElement.getStringValue());
Element genderElement = element.element("性别");
System.out.println(genderElement.getName() + " : " + genderElement.getStringValue());
Element ageElement = element.element("年龄");
System.out.println(ageElement.getName() + " : " + ageElement.getStringValue());
}
}
}
其中xml文档如下:
<?xml version="1.0" encoding="UTF-8"?>
<学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Course30\student.xsd">
<学生 学号="1">
<姓名>张三</姓名>
<性别>男</性别>
<年龄>20</年龄>
</学生>
<学生 学号="2">
<姓名>李四</姓名>
<性别>女</性别>
<年龄>19</年龄>
</学生>
<学生 学号="3">
<姓名>王五</姓名>
<性别>男</性别>
<年龄>21</年龄>
</学生>
</学生名册>