欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

XML文档的简易增删查改

程序员文章站 2022-12-24 11:33:45
dom4j解析一、利用dom4j操作元素节点 1.查询第一本书的书名,并输出到控制台 2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元 3.删除第二本书的作者节点二、利用dom4j操作属性节点 1.给第一本书添加一个属性,如:出版社="清华大学出版社" 2.在控制台上打印 ......

dom4j解析
一、利用dom4j操作元素节点
1.查询第一本书的书名,并输出到控制台
2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
3.删除第二本书的作者节点
二、利用dom4j操作属性节点
1.给第一本书添加一个属性,如:出版社="清华大学出版社"
2.在控制台上打印输出第一本书的出版社属性的值, 并更新属性的值为“人民出版社”
3.删除第一本书的出版社属性
-------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<书架>
<书>
<书名>数据结构</书名>
<作者>严蔚敏</作者>
<售价>29.00元</售价>
</书>
<书>
<书名>高等数学</书名>
<作者>同济大学数学系</作者>
<售价>55.00元</售价>
</书>
</书架>
-------------------------------------------

代码实现如下:

import java.io.filewriter;
import java.util.iterator;

import org.dom4j.attribute;
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;


public class domtest {
/*
* 一、利用dom4j操作元素节点
1.查询第一本书的书名,并输出到控制台
2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
3.删除第二本书的作者节点
二、利用dom4j操作属性节点
1.给第一本书添加一个属性,如:出版社="清华大学出版社"
2.在控制台上打印输出第一本书的出版社属性的值, 并更新属性的值为“人民出版社”
3.删除第一本书的出版社属性
*/
@suppresswarnings("deprecation")
public static void main(string[] args) throws exception {
//创建一个输入流,使xml文件成为一个document,先建立一个对象reader,然后
//用这个对象去调用方法
saxreader reader = new saxreader();

//读取xml文件
document doc = reader.read("src/1.xml");
//查询第一本书的名字,并输出到控制台
//先获取根目录
element root =doc.getrootelement();
//迭代获取下面的元素(子目录)
iterator it1 = root.elementiterator("书");
//获取二级子目录
element e1 = (element) it1.next();
iterator it2 = e1.elementiterator("书名");
element e2 = (element) it2.next();
system.out.println(e2.getname()+ "---" + e2.gettext());
//以上内容完成了查的工作
//2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
//创建一个书下面的新的节点为“特价”
element e3 = e1.addelement("特价");
iterator it4 = e1.elementiterator("售价");
element e6 =(element) it4.next();
e6.settext("19.8元");

//3.删除第二本书的作者节点
element e4 = (element) it1.next();
iterator it3 = e4.elementiterator("作者");
element e5 = (element) it3.next();
boolean b = e4.remove(e5);
system.out.println(b);

//给第一本书添加一个属性,如:出版社="清华大学出版社"
//设置后返回的是该元素,也就是e7和e1是同一个
element e7 = e1.addattribute("出版社", "清华大学出版社");
//在控制台上打印输出第一本书的出版社属性的值, 并更新属性的值为“人民出版社”
attribute a = e1.attribute("出版社");
system.out.println(a.getvalue());
a.setvalue("人民 出版社");
system.out.println(a.getvalue());
//删除第一本书的出版社属性
e1.remove(a);

outputformat format = outputformat.createprettyprint();
format.setencoding("gbk");
xmlwriter writer = new xmlwriter(new filewriter("src/2.xml"),format);
writer.write(doc);
writer.close();
}

}