public class CURDTest { public static void main(String[] args) throws Exception { //获得document //获得解析流 SAXReader reader = new SAXReader(); //解析xml Document document = reader.read("books.xml"); //获得根元素 Element rootElement = document.getRootElement(); //添加 //创建book元素 Element newBook = DocumentHelper.createElement("book"); //创建book元素的id属性 Attribute idAttr = DocumentHelper.createAttribute(newBook, "id", "b004"); //添加到book元素中 newBook.add(idAttr); //创建title元素 Element titleElement = DocumentHelper.createElement("title"); //设置值 titleElement.setText("凤姐玉照"); //添加到newbook newBook.add(titleElement); //将新book元素添加到root元素 rootElement.add(newBook); //将document保存 //持久化流 //创建输出文件的位置 FileOutputStream out = new FileOutputStream("books.dom4j.xml"); XMLWriter writer = new XMLWriter(out); //添加内容对象 writer.write(document); //关闭流 writer.close(); } public static void delete(String[] args) throws Exception { //获得document //获得解析流 SAXReader reader = new SAXReader(); //解析xml Document document = reader.read("books.xml"); //删除 b002 Node bookNode = document.selectSingleNode("//book[@id='b002']"); //获得父节点 Node parent = bookNode.getParent(); Element parentElement = (Element) parent; //删除操作 parentElement.remove(bookNode); //将document保存 //持久化流 //创建输出文件的位置 FileOutputStream out = new FileOutputStream("books.dom4j.xml"); XMLWriter writer = new XMLWriter(out); //添加内容对象 writer.write(document); //关闭流 writer.close(); } public static void update(String[] args) throws Exception { //获得document //获得解析流 SAXReader reader = new SAXReader(); //解析xml Document document = reader.read("books.xml"); //修改 b002 price 100 Node bookNode = document.selectSingleNode("//book[@id='b002']"); //强转转换 Element bookElement = (Element) bookNode; //通过指定的名称获得相应的元素 Element priceElement = bookElement.element("price"); //修改值 // priceElement.getText(); priceElement.setText("100"); //将document保存 //持久化流 //创建输出文件的位置 FileOutputStream out = new FileOutputStream("books.dom4j.xml"); XMLWriter writer = new XMLWriter(out); //添加内容对象 writer.write(document); //关闭流 writer.close(); } }
一、获得document
//获得解析流
SAXReader reader = new SAXReader();
//解析xml
Document document = reader.read("books.xml");
二、保存
//创建输出文件的位置
FileOutputStream out = new FileOutputStream("books.dom4j.xml");
XMLWriter writer = new XMLWriter(out);
//添加内容对象
writer.write(document);
//关闭流
writer.close();
三、API
* 获得根元素
Element rootElement = document.getRootElement();
* 获得所有的子元素
List list = rootElement.elements();
* 获得指定的子元素
Element priceElement = bookElement.element("price");
* 获得指定属性的元素
Node bookNode = document.selectSingleNode("//book[@id=‘b002‘]");
* 设置文本
priceElement.setText("100");
* 获得节点的名称
child.getName()
* 获得指定名称的属性值
String id = bookElement.attributeValue("id");
时间: 2024-10-06 16:01:01