博客
关于我
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/

你可能感兴趣的文章
NET Framework安装失败的麻烦
查看>>
Net 应用程序如何在32位操作系统下申请超过2G的内存
查看>>
Net.Framework概述
查看>>
NET3.0+中使软件发出声音[整理篇]<转>
查看>>
net::err_aborted 错误码 404
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetAssist网络调试工具使用指南 (附NetAssist工具包)
查看>>
Netbeans 8.1启动参数配置
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
NetBeans之JSP开发环境的搭建...
查看>>
NetBeans之改变难看的JSP脚本标签的背景色...
查看>>
netbeans生成的maven工程没有web.xml文件 如何新建
查看>>
netcat的端口转发功能的实现
查看>>
NetCore 上传,断点续传,可支持流上传
查看>>
Netcraft报告: let's encrypt和Comodo发布成千上万的网络钓鱼证书
查看>>
Netem功能
查看>>
netfilter应用场景
查看>>
Netflix:当你按下“播放”的时候发生了什么?
查看>>
Netflix推荐系统:从评分预测到消费者法则
查看>>
netframework 4.0内置处理JSON对象
查看>>