dom4j
使用:需先导入dom4j对应的jar,本章用的是dom4j-1.6.1.jar
优点:DOM4J使Java开发的灵活性和XML解析代码易于维护
dom4j相关操作类
Document:表示整个xml文档,是一个树形结构
Eelment:表示一个xml的元素,提供方法操作其子元素,它的文本,属性和名称空间
Attribute:表示元素的属性
Node:表示元素,属性
dom4j生成xml
package com.xm.xml.dom4j;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
* java dom4j生成xml
* @author ouyangjun
*/
public class CreateDom4j {
public static void main(String[] args) {
// 调用dom4j生成xml方法
createDom4j(new File("E:\\dom4j.xml"));
}
public static void createDom4j(File file){
try{
// 创建Document
Document document = DocumentHelper.createDocument();
// 添加根节点
Element root = document.addElement("root");
// 在根节点下添加第一个子节点
Element oneChildElement= root.addElement("person").addAttribute("attr", "root noe");
oneChildElement.addElement("people")
.addAttribute("attr", "child one")
.addText("person one child one");
oneChildElement.addElement("people")
.addAttribute("attr", "child two")
.addText("person one child two");
// 在根节点下添加第一个子节点
Element twoChildElement= root.addElement("person").addAttribute("attr", "root two");
twoChildElement.addElement("people")
.addAttribute("attr", "child one")
.addText("person two child one");
twoChildElement.addElement("people")
.addAttribute("attr", "child two")
.addText("person two child two");
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter( new FileOutputStream(file), format);
writer.write(document);
System.out.println("dom4j CreateDom4j success!");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
xml效果图:
dom4j解析xml
package com.xm.xml.dom4j;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
/**
* java jdom解析xml
* @author ouyangjun
*/
public class ParseDom4j {
public static void main(String[] args) {
// 调用dom4j解析xml方法
parseDom4j(new File("E:\\dom4j.xml"));
}
public static void parseDom4j(File file){
try {
// 创建dom4j解析器
SAXReader reader = new SAXReader();
// 获取Document节点
Document document = reader.read( file );
System.out.println("Root element :" + document.getRootElement().getName());
// 递归打印xml文档信息
parseElement(document.getRootElement());
} catch (DocumentException e) {
e.printStackTrace();
}
}
public static void parseElement(Element rootElement){
Element element;
for (Iterator<?> iterator = rootElement.elementIterator(); iterator.hasNext();) {
element = (Element)iterator.next();
System.out.println("Current Element Name :" + element.getName() +" , Text :"+ element.getTextTrim());
if (element.getNodeType() == Node.ELEMENT_NODE) {
if(element.hasContent()){
parseElement(element);
}
}
}
}
}
控制台打印效果图:
本章完结,待续!
本文说明:该文章属于原创,如需转载,请标明文章转载来源