zoukankan      html  css  js  c++  java
  • 使用dom4工具:增删改xml文件(七)

    package dom4j_write;
    
    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.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    
    /**
     * 修改xml文件:	
     * 			添加:文档		标签		属性
     * 			修改:属性值		文本内容
     * 			删除:标签		属性
     * 
     * @author mzy
     *
     */
    public class Demo03 {
    	public static void main(String[] args) throws Exception{
    		/**
    		 * 添加:文档	标签		属性
    		 */
    		// 1.1 添加空文档
    		Document doc = DocumentHelper.createDocument();
    		
    		// -------------------------------
    		
    		// 真正的操作
    		Element conListElem = doc.addElement("contact-list"); // 但是根标签不能添加多个
    		// 一层一层的加
    		Element conElem = conListElem.addElement("contact");
    		
    		conElem.addElement("name");
    		
    		// 添加属性
    		conElem.addAttribute("id", "001");
    		conElem.addAttribute("name", "mzy");
    		// -------------------------------
    		
    		// 1.2 把文档写出到xml文件中
    		FileOutputStream out = new FileOutputStream("E:/user/eclipse_workStation/XML/src/dom4j_write/target03.xml");
    		OutputFormat format = OutputFormat.createPrettyPrint();
    		format.setEncoding("utf-8");
    		
    		XMLWriter writer = new XMLWriter(out, format);
    		writer.write(doc);
    		
    		/**
    		 * 修改:属性值		文本内容
    		 * 将contact的属性值id=001,修改为id=003	
    		 * 在name标签中添加名字
    		 */
    		doc = new SAXReader().read(new File("E:/user/eclipse_workStation/XML/src/dom4j_write/target03.xml"));
    		
    		// 修改属性值:method_1.先得到属性对象,再修改属性对象的值
    		conElem = doc.getRootElement().element("contact");
    		Attribute idAttr = conElem.attribute("id");
    		idAttr.setValue("003");
    		
    		// 修改属性值:method_2.因为属性名不能重复,重复增加即覆盖
    		// conElem.addAttribute("id", "003");
    		
    		// 修改文本
    		Element nameElem = doc.getRootElement().element("contact").element("name");
    		nameElem.setText("王五");
    		
    		// 把文档写出到xml文件中:必须重置IO流,不然会接着上次结束的位置写
    		out = new FileOutputStream("E:/user/eclipse_workStation/XML/src/dom4j_write/target03.xml");
    		format = OutputFormat.createPrettyPrint();
    		format.setEncoding("utf-8");
    		
    		
    		/**
    		 * 删除:标签		属性内容
    		 * 将contact的属性值id=001,修改为id=003	
    		 */
    		// 1.1  删除标签
    		conElem = doc.getRootElement().element("contact");
    		// conElem.detach(); // 删除当前的标签
    		// conElem.getParent().remove(conElem); // 获取父标签再删除子标签
    		
    		// 1.2 删除属性
    		Attribute attr = doc.getRootElement().element("contact").attribute("id");
    		attr.detach();
    		
    		writer = new XMLWriter(out, format);
    		writer.write(doc);
    		
    	}
    }
    

    xml格式如下:

    <?xml version="1.0" encoding="utf-8"?>
    
    <contact-list> 
      <contact name="eric"> 
        <name>王五</name> 
      </contact> 
    </contact-list>
    


  • 相关阅读:
    Transact_SQL小手册(各种sql语句大集合)
    矮人DOS工具箱 使用说明
    window.showModalDialog以及window.open用法简介 (转)
    正则表达式(转)
    Ajax.net用户指南(转)
    Java相关的开源GIS系统
    数据库操作之ODBC
    编译第一个OSG程序时候需要注意的
    OSG编译
    VC 多线程编程(转)
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053417.html
Copyright © 2011-2022 走看看