1.加载DOM树
public class Dom4jXML {
/**
* 1.加载DOM树
*/
Document doc=null;
public void loadXML() {
//1.实例化SAReader对象
SAXReader saxReader=new SAXReader();
//2.调用saxReader的read()
try {
doc=saxReader.read("src/a.xml");
// System.out.println(doc);
} catch (DocumentException e) {
e.printStackTrace();
}
}
2.查询XML
/**
* 2.查询XML
*/
public void findXML() {
//1.获取根元素
Element root=doc.getRootElement();
//2.遍历儿子元素的集合
Iterator brandInfos = root.elementIterator();
while (brandInfos.hasNext()){
//3.获取儿子元素
Element brandInfo =(Element)brandInfos.next();
System.out.println (brandInfo.attributeValue ("name"));
//4.遍历孙子元素
Iterator types = brandInfo.elementIterator();
while (types.hasNext()){
Element type =(Element)types.next();
System.out.println(type.attributeValue("name"));
}
}
}
3.添加新元素
/**
* 3.添加新元素
*/
public void addXML() {
//1.获取根元素
Element root=doc.getRootElement();
//2.添加儿子元素
Element brandInfo=root.addElement("Brand");
//3.给儿子元素添加name属性
brandInfo.addAttribute("name","三星");
//4.添加孙子节点
Element type=brandInfo.addElement("Type");
//5.给孙子添加name属性
type.addAttribute("name","note4");
//6.保存到新的xml中
saveXML("src/b.xml");
}
4.保存到XML
/**
* 4.保存到XML
*/
public void saveXML(String path) {
//1.调用OutputFormat类的createPrettyPrint()
OutputFormat format = OutputFormat.createPrettyPrint();
//2.设置字符集
format.setEncoding("gbk");
//3.创建XMLWriter对象
XMLWriter writer = null;
//4.调用XMLWriter对象
try {
writer = new XMLWriter(new FileWriter(path),format);
//5.输出给文件
writer.write (doc);
}catch (IOException e) {
e.printStackTrace();
}finally {
try {
//6.关闭writer流对象
writer.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
5.修改XML
/**
* 5.修改XML
*/
public void updateXML() {
//1.获取根元素
Element root=doc.getRootElement();
//2.回去前儿子元素的集合
Iterator brandInfos = root.elementIterator();
//3.定义变量id
int id = 0;
//4.循环遍历儿子元素集合
while (brandInfos.hasNext()){
Element brand = (Element) brandInfos.next();
id++;
brand . addAttribute("id",id+"");
}
saveXML("src/c.xml");
}
实现main方法
public static void main(String[] args) {
Dom4jXML dom4jXML=new Dom4jXML();
dom4jXML.loadXML();
dom4jXML.addXML();
dom4jXML.updateXML();
dom4jXML.findXML();
}
}
导入的包
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;