• DOM4J读取XML


     依赖的jar包:

    dom4j-1.6.1.jar 和 jaxen-1.1.6.jar

    实现读取XML元素和添加元素

    package cn.test;
    
    import java.io.FileOutputStream;
    import java.io.OutputStreamWriter;
    
    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;
    import org.junit.Test;
    
    /**
     * 需要两个jar包
     * dom4j-1.6.1.jar-306 KB
     * jaxen-1.1-beta-6.jar
     * @author zy
     *
     */
    
    public class Dom4jTest {
    	
    	@Test
    	public void readXML(){
    		String path = "D:/Temp/users.xml";
    		//创建解析器
    		SAXReader reader = new SAXReader();
    		try {
    			//得到document
    			Document doc = reader.read(path);
    			//通过xpath查询得到Element
    			Element ele = (Element) doc.selectSingleNode(
    					"//user[@username='scott']");
    			//获取该元素的名为username的属性值
    			String username = ele.attributeValue("username");
    			String password = ele.attributeValue("password");
    			System.out.println(username+","+password);
    		} catch (DocumentException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	@Test
    	public void writeXML(){
    		String path = "D:/Temp/users.xml";
    		//创建解析器
    				SAXReader reader = new SAXReader();
    				try {
    					//得到document
    					Document doc = reader.read(path);
    					//得到根元素
    					Element root = doc.getRootElement();
    					//通过根元素创建新元素user
    					Element userEle = root.addElement("user");
    					//为userEle设置属性
    					userEle.addAttribute("username","scott");
    					userEle.addAttribute("password","tiger");
    					//设置文档格式,使用	缩进,使用换行
    					OutputFormat format = new OutputFormat("	",true);
    					//删除原来已有的文档的缩进和换行
    					format.setTrimText(true);
    					//创建XMLWriter
    					XMLWriter writer;
    					try {
    						 writer = new XMLWriter(
    						  new OutputStreamWriter(
    								  new FileOutputStream(path),"utf-8"),format);
    					//保存document对象
    						writer.write(doc);
    						writer.close();
    					} catch (Exception e) {
    						e.printStackTrace();
    					} 
    				} catch (DocumentException e) {
    					e.printStackTrace();
    				}
    	}
    
    }
    

      

    xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <users>
    	<user username="scott" password="tiger"/>
    </users>
    

      

  • 相关阅读:
    python 元类
    python中__init__()、__new__()、__call__()、__del__()用法
    python内置数据结构方法的时间复杂度
    时间复杂度和空间复杂度
    数据结构及算法(1)
    sys模块python
    python中的文本操作
    python 中的os模块
    python 几种不同的格式化输出
    【js】null 和 undefined的区别?
  • 原文地址:https://www.cnblogs.com/zydev/p/7223455.html
Copyright © 2020-2023  润新知