DOM4J解析xml(CURD)

public class CURDTest {

	public static void main(String[] args) throws Exception {

		//获得document
		//获得解析流
		SAXReader reader = new SAXReader();
		//解析xml
		Document document  = reader.read("books.xml");

		//获得根元素
		Element rootElement = document.getRootElement();

		//添加
		//创建book元素
		Element newBook = DocumentHelper.createElement("book");

		//创建book元素的id属性
		Attribute  idAttr = DocumentHelper.createAttribute(newBook, "id", "b004");
		//添加到book元素中
		newBook.add(idAttr);

		//创建title元素
		Element titleElement = DocumentHelper.createElement("title");
		//设置值
		titleElement.setText("凤姐玉照");

		//添加到newbook
		newBook.add(titleElement);

		//将新book元素添加到root元素
		rootElement.add(newBook);

		//将document保存
		//持久化流

		//创建输出文件的位置
		FileOutputStream out = new FileOutputStream("books.dom4j.xml");

		XMLWriter writer = new XMLWriter(out);
		//添加内容对象
		writer.write(document);
		//关闭流
		writer.close();
	}

	public static void delete(String[] args) throws Exception {

		//获得document
		//获得解析流
		SAXReader reader = new SAXReader();
		//解析xml
		Document document  = reader.read("books.xml");

		//删除 b002
		Node bookNode = document.selectSingleNode("//book[@id='b002']");
		//获得父节点
		Node parent = bookNode.getParent();
		Element parentElement = (Element) parent;

		//删除操作
		parentElement.remove(bookNode);

		//将document保存
		//持久化流

		//创建输出文件的位置
		FileOutputStream out = new FileOutputStream("books.dom4j.xml");

		XMLWriter writer = new XMLWriter(out);
		//添加内容对象
		writer.write(document);
		//关闭流
		writer.close();
	}

	public static void update(String[] args) throws Exception {

		//获得document
		//获得解析流
		SAXReader reader = new SAXReader();
		//解析xml
		Document document  = reader.read("books.xml");

		//修改 b002 price 100
		Node bookNode = document.selectSingleNode("//book[@id='b002']");
		//强转转换
		Element bookElement = (Element) bookNode;
		//通过指定的名称获得相应的元素
		Element priceElement = bookElement.element("price");
		//修改值
//		priceElement.getText();
		priceElement.setText("100");

		//将document保存
		//持久化流

		//创建输出文件的位置
		FileOutputStream out = new FileOutputStream("books.dom4j.xml");

		XMLWriter writer = new XMLWriter(out);
		//添加内容对象
		writer.write(document);
		//关闭流
		writer.close();
	}
}

一、获得document

//获得解析流

SAXReader reader = new SAXReader();

//解析xml

Document document  = reader.read("books.xml");

二、保存

//创建输出文件的位置

FileOutputStream out = new FileOutputStream("books.dom4j.xml");

XMLWriter writer = new XMLWriter(out);

//添加内容对象

writer.write(document);

//关闭流

writer.close();

三、API

* 获得根元素

Element rootElement = document.getRootElement();

* 获得所有的子元素

List list = rootElement.elements();

* 获得指定的子元素

Element priceElement = bookElement.element("price");

* 获得指定属性的元素

Node bookNode = document.selectSingleNode("//book[@id=‘b002‘]");

* 设置文本

priceElement.setText("100");

* 获得节点的名称

child.getName()

* 获得指定名称的属性值

String id = bookElement.attributeValue("id");

时间: 2024-10-06 16:01:01

DOM4J解析xml(CURD)的相关文章

dom4j解析XML的CURD操作

在开发JavaWeb项目中通常是利用XML配置文件来提高应用程序的访问效率,而在配置XML的同时,更多时候是对XML进行解析. 一.解析XML配置文件有两种机制: DOM和SAX的机制: DOM是将整个XML文件读到内容,形成一个倒状的树形结构. SAX是一个一个的将XML文件中的元素加载的内存,不会形成一个倒状的树形结构. 常用dom4j的api: 主要使用到SAXReader类 SAXReader:表示DOM4J解析器 saxReader.read():加载需要解析的xml文件,返回docu

【收藏用】--切勿转载JAVA 使用Dom4j 解析XML

原帖地址 : http://blog.csdn.NET/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1)下载dom4j-1.6.1.jar (2)下载junit-4.10.jar 2.温馨提示 解析XML过程是通过获取Document对象,然后继续获取各个节点以及属性等操作,因此获取Document对象是第一步,大体说来,有三种方式: (1)自己创建Document对象   Document docu

转:在java中使用dom4j解析xml

在java中使用dom4j解析xml 虽然Java中已经有了Dom和Sax这两种标准解析方式 但其操作起来并不轻松,对于我这么一个初学者来说,其中部分代码是活生生的恶心 为此,伟大的第三方开发组开发出了Jdom和Dom4j等工具 鉴于目前的趋势,我们这里来讲讲Dom4j的基本用法,不涉及递归等复杂操作 Dom4j的用法很多,官网上的示例有那么点儿晦涩,这里就不写了 首先我们需要出创建一个xml文档,然后才能对其解析 xml文档: <?xml version="1.0" encod

使用DOM4J解析XMl文件与读取XML文件

XML文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <bookstore> 3 <book id="1"> 4 <name>冰与火之歌</name> 5 <author>乔治马丁</author> 6 <year>2014</year> 7 <price>89</price&g

java使用dom4j解析xml

目标:将指定XML进行解析,以键=值的方式返回指定节点下的数据 所需要的jar包:dom4j1.6.1.jar.jaxen-1.1.jar <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://s

java dom4j解析xml实例(2)

java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar(如果不导入这个架包程序可以执行出结果,但最后会报异常) 将相关jar包引入后,实际解析操作如下:  1.要解析的xml文件province.xml: <china dn="d

使用dom4j解析XML文档

dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不准确,也会导致多个同名的方法理解和用法不同 XML: <?xml version="1.0" encoding="utf-8"?> <students> <student age="25"> <name>

【java项目实战】dom4j解析xml文件,连接Oracle数据库

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

javaweb dom4j解析xml文档

1.什么是dom4j dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它.在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能.功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的.如今可以看到越