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

你可能感兴趣的文章
Linux下的系统监控与性能调优:从入门到精通
查看>>
LiveGBS user/save 逻辑缺陷漏洞复现(CNVD-2023-72138)
查看>>
localhost:5000在MacOS V12(蒙特利)中不可用
查看>>
logstash mysql 准实时同步到 elasticsearch
查看>>
Luogu2973:[USACO10HOL]赶小猪
查看>>
mabatis 中出现< 以及> 代表什么意思?
查看>>
Mac book pro打开docker出现The data couldn’t be read because it is missing
查看>>
MAC M1大数据0-1成神篇-25 hadoop高可用搭建
查看>>
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MariaDB的简单使用
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>