代碼實例
package cn.test.dom4jtest;
import java.io.FileOutputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class TestDom4j {
public static void main(String[] args) throws Exception {
selectName();
selectSingleName(2);
addAgeBefore();
}
public static void addAgeBefore() throws Exception{
/*
* 1創建解析器
* 2得到document
* 3得到根節點
*
* 4得到第1個 p1
* 5獲得p1下面所有元素
* elements()方法返回list集合
* 使用list 裏面的方法 在特定位置添加元素
* 第一個參數是位置下標 從0開始
* 6回寫xml
*/
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/person.xml");
Element root =document.getRootElement();
Element p1 = root.element("p1");
List<Element> list = p1.elements();
//添加元素
Element school=DocumentHelper.createElement("school");
school.setText("one");
list.add(1,school);
//回寫xml
OutputFormat format =OutputFormat.createPrettyPrint();
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream("src/person.xml"),format);
xmlWriter.write(document);
xmlWriter.close();
}
//查詢 xml中第n個 name元素的值
public static void selectSingleName(int index) throws Exception{
/*
* 1創建解析器
* 2得到document
* 3得到根節點
*
* 4得到第n個 p1
* 5得到p1 name下面的值
*/
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/person.xml");
Element root =document.getRootElement();
List<Element > list = root.elements("p1");
if(list.size()>=index){
Element element=list.get(index-1);
Element name=element.element("name");
System.out.println(name.getText());
}else{
System.out.println("no search");
}
}
//查詢 xml中所用name元素的值
public static void selectName() throws Exception{
/*
* 1創建解析器
* 2得到document
* 3得到根節點
*
* 4得到p1
* 5得到p1 name下面的值
*/
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/person.xml");
Element root =document.getRootElement();
List<Element > list = root.elements("p1");
//遍歷list
for (Element element : list) {
Element name=element.element("name");
System.out.println(name.getText());
}
}
}