博客
关于我
Dom4j解析XML
阅读量:378 次
发布时间:2019-03-04

本文共 3434 字,大约阅读时间需要 11 分钟。

dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的XML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。

Jar包:dom4j-2.0.0-RC1.jar、jaxen-1.1-beta-6.jar(用于XPath)

代码示例

import java.io.File;import java.io.FileWriter;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;import org.junit.Test;/** * Dom4j使用示例 * 创建,修改,删除,解析XML文档 * @author xiayunan * */public class DOM4JDemo {	/**	 * 创建XML文件	 * @throws Exception	 */	@Test	public  void createXML() throws Exception{		 Document document = DocumentHelper.createDocument();         Element root = document.addElement("hibernate-mapping");         Element classElement =        		 root.addElement("class")        		 	 .addAttribute("name","com.trs.User")                     .addAttribute("table","wcmuser");         classElement.addElement("property")	         		 .addAttribute("name","username")	         		 .addText("admin");         classElement.addElement("property")	         		 .addAttribute("name","password")	         		 .addText("123456");                  OutputFormat format = OutputFormat.createPrettyPrint();//创建更漂亮的格式         // 指定文件         XMLWriter writer = new XMLWriter(             new FileWriter("User.hbm.xml"),format         );         writer.write( document );         writer.close();	}	/**	 * 修改XML文档,改变password的值为12345678	 * @throws Exception 	 */	@Test	public void updateXML() throws Exception{		SAXReader reader = new SAXReader();          Document document = reader.read(new File("User.hbm.xml"));         /*         * 注:XPath使用//hibernate-mapping/class/property[@name='password']         * 和直接使用//property[@name='password']效果是一样的,都是为了选取property元素         * 中属性name值为password的节点的值,这里是为了方便显示层级结构         */        Node node = document.selectSingleNode( "//hibernate-mapping/class/property[@name='password']" );        node.setText("12345678");        OutputFormat format = OutputFormat.createPrettyPrint();//创建更漂亮的格式        // 指定文件        XMLWriter writer = new XMLWriter(            new FileWriter("User.hbm.xml"),format        );        writer.write(document);        writer.close();        	}		/**	 * 删除XML节点	 * @throws Exception 	 */	@Test	public void deleteXml() throws Exception{		SAXReader reader = new SAXReader();          Document document = reader.read(new File("User.hbm.xml"));         Node node = document.selectSingleNode( "//property[@name='password']" );        node.getParent().remove(node);        OutputFormat format = OutputFormat.createPrettyPrint();//创建更漂亮的格式        // 指定文件        XMLWriter writer = new XMLWriter(            new FileWriter("User.hbm.xml"),format        );        writer.write(document);        writer.close();        	}		/**	 * 解析XML	 * 获取class元素下所有的property元素的属性和值	 * @throws Exception 	 */	@Test	public void parseXml() throws Exception{		SAXReader reader = new SAXReader();          Document document = reader.read(new File("User.hbm.xml"));         List
nodes = document.selectNodes( "//hibernate-mapping/class/property" ); for(Node node:nodes){ System.out.println(node.getName());//元素的名称 System.out.println(node.valueOf("@name"));//元素name属性的值 System.out.println(node.getText());//元素的文本值 } }}
生成的XML

admin
123456

转载地址:http://sxne.baihongyu.com/

你可能感兴趣的文章
MySQL 数据类型和属性
查看>>
mysql 敲错命令 想取消怎么办?
查看>>
Mysql 整形列的字节与存储范围
查看>>
mysql 断电数据损坏,无法启动
查看>>
MySQL 日期时间类型的选择
查看>>
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>
MySQL 是如何加锁的?
查看>>
MySQL 是怎样运行的 - InnoDB数据页结构
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询数据库所有表的字段信息
查看>>
【Java基础】什么是面向对象?
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>