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

你可能感兴趣的文章
nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
查看>>
nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
查看>>
nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
查看>>
nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
查看>>
Nacos源码分析:心跳机制、健康检查、服务发现、AP集群
查看>>
nacos看这一篇文章就够了
查看>>
Nacos简介、下载与配置持久化到Mysql
查看>>
Nacos简介和控制台服务安装
查看>>
Nacos管理界面详细介绍
查看>>
Nacos编译报错NacosException: endpoint is blank
查看>>
nacos自动刷新配置
查看>>
nacos运行报错问题之一
查看>>
Nacos部署中的一些常见问题汇总
查看>>
NACOS部署,微服务框架之NACOS-单机、集群方式部署
查看>>
Nacos配置Mysql数据库
查看>>
Nacos配置中心中配置文件的创建、微服务读取nacos配置中心
查看>>
Nacos配置中心集群原理及源码分析
查看>>
nacos配置在代码中如何引用
查看>>
nacos配置新增不成功
查看>>
nacos配置自动刷新源码解析
查看>>