// 一:读取或者创建一个Document对象
// 二:修改Document对象
// 三:将修改后的对象写出到xml文档中
//修改:
/*
一: 增加 1.标签 2.属性
二 :修改 1.属性的值 2.修改文本
三: 删除 1.标签 2.属性
*/
import java.io.File;
import java.io.FileOutputStream;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.ElementHandler;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
public class Demo{
// 一: 增加 1.标签 2.属性
public void test1() throws Exception{
//1.创建文档
Document doc = DocumentHelper.createDocument();
//2.添加标签
Element rootElem = doc.addElement("persons");
Element personElem = rootElem.addElement("person");
//3.增加属性
personElem.addAttribute("id", "001");
personElem.addElement("name");
FileOutputStream outputStream = new FileOutputStream("F:\\person.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(outputStream, format);
writer.write(doc);
writer.close();
}
//修改 属性值和文本
public void test() throws Exception {
Document doc = new SAXReader().read(new File("F:\\1.xml"));
/*
* 方案一:修改属性值: 1得到标签对象, 2 得到属性对象,3修改属性值
*
*
*
*/
/*Element personElem = doc.getRootElement().element("person");
Attribute idAttr = personElem.attribute("id");
idAttr.setValue("008");*/
//标签中不能够存在相同的属性值,通过添加属性值覆盖掉原来的属性值
/*Element personElem = doc.getRootElement().element("person");
personElem.addAttribute("id", "009");*/
//修改文本
//拿到标签来修改
Element nameElem = doc.getRootElement().element("person").element("name");
nameElem.setText("张三");
FileOutputStream outputStream = new FileOutputStream("F:\\person.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(outputStream, format);
writer.write(doc);
writer.close();
}
//删除 : 标签 属性
@Test
public void test2() throws Exception{
Document doc = new SAXReader().read(new File("F:\\1.xml"));
Element nameElem = doc.getRootElement().element("person");
/* 1 得到标签 2 删除标签; 自杀 nameElem.detach();
nameElem.getParent().remove(nameElem);
他杀*/
Attribute idAttr = nameElem.attribute("id");
idAttr.detach();
FileOutputStream outputStream = new FileOutputStream("F:\\person.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(outputStream, format);
writer.write(doc);
writer.close();
}
}
// 二:修改Document对象
// 三:将修改后的对象写出到xml文档中
//修改:
/*
一: 增加 1.标签 2.属性
二 :修改 1.属性的值 2.修改文本
三: 删除 1.标签 2.属性
*/
import java.io.File;
import java.io.FileOutputStream;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.ElementHandler;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
public class Demo{
// 一: 增加 1.标签 2.属性
public void test1() throws Exception{
//1.创建文档
Document doc = DocumentHelper.createDocument();
//2.添加标签
Element rootElem = doc.addElement("persons");
Element personElem = rootElem.addElement("person");
//3.增加属性
personElem.addAttribute("id", "001");
personElem.addElement("name");
FileOutputStream outputStream = new FileOutputStream("F:\\person.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(outputStream, format);
writer.write(doc);
writer.close();
}
//修改 属性值和文本
public void test() throws Exception {
Document doc = new SAXReader().read(new File("F:\\1.xml"));
/*
* 方案一:修改属性值: 1得到标签对象, 2 得到属性对象,3修改属性值
*
*
*
*/
/*Element personElem = doc.getRootElement().element("person");
Attribute idAttr = personElem.attribute("id");
idAttr.setValue("008");*/
//标签中不能够存在相同的属性值,通过添加属性值覆盖掉原来的属性值
/*Element personElem = doc.getRootElement().element("person");
personElem.addAttribute("id", "009");*/
//修改文本
//拿到标签来修改
Element nameElem = doc.getRootElement().element("person").element("name");
nameElem.setText("张三");
FileOutputStream outputStream = new FileOutputStream("F:\\person.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(outputStream, format);
writer.write(doc);
writer.close();
}
//删除 : 标签 属性
@Test
public void test2() throws Exception{
Document doc = new SAXReader().read(new File("F:\\1.xml"));
Element nameElem = doc.getRootElement().element("person");
/* 1 得到标签 2 删除标签; 自杀 nameElem.detach();
nameElem.getParent().remove(nameElem);
他杀*/
Attribute idAttr = nameElem.attribute("id");
idAttr.detach();
FileOutputStream outputStream = new FileOutputStream("F:\\person.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(outputStream, format);
writer.write(doc);
writer.close();
}
}