版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38230811/article/details/84565580
代码实例
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());
}
}
}