dom4j在特定位置添加节点
程序员文章站
2022-05-28 22:29:11
...
//在第一个p1下面的age标签之前添加<school>ecit</schlool>
public static void addAgeBefore() throws Exception{
/*
* 1、创建解析器
* 2、得到document
* 3、得到根节点
* 4、获取到第一个p1
*
* 5、获取p1下面的所有的元素
* ** elements()方法 返回 list集合
* ** 使用list里面的方法,在特定位置添加元素
* ** 创建元素 在元素下面创建文本
* * add(int index, E element)
* - 第一个参数是 位置 下标,从0开始
* - 第二个参数是 要添加的元素
* 6、回写xml
* */
//创建解析器对象
SAXReader saxReader = new SAXReader();
//得到document
Document document = saxReader.read("src/day06/p1.xml");
//得到根节点
Element root = document.getRootElement();
//获取到第一个p1
Element p1 = root.element("p1");
//获取p1下面的所有元素
List<Element> list = p1.elements();
//创建元素使用
Element school = DocumentHelper.createElement("school");
//在school下面创建文本
school.setText("ecit");
//在特定位置添加元素
list.add(1,school);
//回写xml
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/day06/p1.xml"),format);
xmlWriter.write(document);
xmlWriter.close();
}