XML文档增加 修改 删除

来源:互联网 发布:al人工智能图片放大 编辑:程序博客网 时间:2024/04/28 02:26
// 一:读取或者创建一个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();
    }
}