XML文件操作之dom4j
能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的
所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/
dom4j相关的重要类和方法
SAXReader,用于读取外部的xml文件,实例
SAXReader reader=new SAXReader();
Document document=reader.read(new File("f:/test.xml"));
SAXReader 的read方法可以读取外部的xml文件,返回一个Document 对象
Document,dom4j的一个文档对象,用于操作xml文档的结构,可通过调用它的getRootElement()方法获取根元素Element对象
Document document=reader.read(new File("f:/test.xml"));
Element root=document.getRootElement();
Element,元素对象,它的方法还是挺多的,是主要操作对象。方法如下:
element("ElementName"),方法可以获取该元素标签中的名称为ElementName的子Element元素对象
Element root=document.getRootElement();
Element element=root.element("红楼梦");
attribute("id") ,获取属性为id的Attribute对象
Attribute attr=element.attribute("id");
addElement("ElementName"),添加一个新的子Element标签,名字为ElementName
addText(""),为element对象添加 text值
Element e=element.addElement("朝代");
e.addText("唐朝");
remove(Attribute),移除一个指定的Attribute对象
Element element=root.element("红楼梦");
Attribute attr=element.attribute("id");
element.remove(attr);
addAttribute("name","value"),添加一个新的属性
element.addAttribute("作者", "wang");
addCDATA("")添加一段不可解析的字符
element.addCDATA("红楼梦是中国四大名著之一");
Attribute,属相对象,操作属性值,通过Element对象的Attribute("")方法获取
XMLWriter,用于输出xml到指定文件
OutputFormat format = OutputFormat.createPrettyPrint(); //格式化输出文件
format.setEncoding("UTF-8");
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("f:/test2.xml")),format);
xmlWriter.write(document);
实例代码
test.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<四大名著>
<西游记 id="x001">
<作者>吴承恩1</作者>
<作者>吴承恩2</作者>
<朝代>明朝</朝代>
</西游记>
<红楼梦 id="x002">
<作者>曹雪芹</作者>
</红楼梦>
</四大名著>
执行代码如下:
package util; import java.io.File;
import java.io.FileOutputStream; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter; public class XmlUtil { public static void main(String[] args) {
parseXml();
} public static String parseXml(){
String xmlResult = null;
SAXReader reader=new SAXReader(); try {
Document document=reader.read(new File("f:/test.xml")); Element root=document.getRootElement();
Element element=root.element("红楼梦");
Attribute attr=element.attribute("id");
element.remove(attr);
element.addAttribute("作者", "wang");
Element e=element.addElement("朝代");
e.addText("清朝");
element.addCDATA("红楼梦是中国四大名著之一"); OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("f:/test2.xml")),format);
xmlWriter.write(document);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return xmlResult;
}
}
执行后,生成了test2.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <四大名著>
<西游记 id="x001">
<作者>吴承恩1</作者>
<作者>吴承恩2</作者>
<朝代>明朝</朝代>
</西游记>
<红楼梦 作者="wang">
<作者>曹雪芹</作者>
<朝代>清朝</朝代><![CDATA[红楼梦是中国四大名住著之一]]>
</红楼梦>
</四大名著>
XML文件操作之dom4j的更多相关文章
- 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!
我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...
- C# XML文件操作
C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...
- XML文件解析之DOM4J解析
1.DOM4J介绍 dom4j的官网是http://www.dom4j.org/dom4j-1.6.1/,最新的版本是1.6.1,根据官网介绍可知.dom4j是一个易用的.开源的库,应用于Java平台 ...
- XML文件操作类--创建XML文件
这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...
- PHP对XML文件操作之属性与方法讲解
DOMDocument相关的内容. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definit ...
- 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml
数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...
- SpringBatch Sample (三)(XML文件操作)
前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作.实例流程是 ...
- C#XML文件操作随笔
以为公司一直没有电源屏厂家协议解析为DevVars相关的软件,手写费时费力还容易出错,用了2天时间做了一个.txt协议文件筛选加并解析成xml文件的工具,总结一下用到的几个知识点 1.LINQ 是一个 ...
- XML文件(2)--使用DOM4J示例
其他依赖字段/方法 private List<Book> bookList = new LinkedList<Book>(); public List<Book> ...
随机推荐
- 还不打算去认识一下webpack?
前言 随我来,去看看webpack!(为时未晚)============>第一版(较浅显的知识,懂得可忽略本文) 方向 安装,起步搭建运行. (粗略代过) 对于资源的管理,对于输出的管理. (举 ...
- js给对象onclick事件赋值
1)当方法没有参数时,赋值可以直接用onclick = 方法名 window.onload = function() { $('btnTest').onclick = test; } function ...
- Spring MVC自定义消息转换器(可解决Long类型数据传入前端精度丢失的问题)
1.前言 对于Long 类型的数据,如果我们在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在Long长度大于17位时会出现精度 ...
- 《深入理解Android 卷III》第八章深入理解Android壁纸
<深入理解Android 卷III>即将公布,作者是张大伟. 此书填补了深入理解Android Framework卷中的一个主要空白,即Android Framework中和UI相关的部分 ...
- Service启动模式
Service简单介绍 Service表示服务.是Android系统的核心组件之中的一个. Service的本质是一个继承了android.app.Service的java类: ...
- u-boot学习(五):u-boot启动内核
u-boot的目的是启动内核.内核位于Flash中,那么u-boot就要将内核转移到内存中.然后执行命令执行之.这些操作是由bootcmd命令完毕的. bootcmd=nand read.jffs2 ...
- Java 异步转同步 ListenableFuture in Guava
ListenableFuture的说明 并发编程是一个难题,但是一个强大而简单的抽象可以显著的简化并发的编写.出于这样的考虑,Guava 定义了 ListenableFuture接口并继承了JDK c ...
- hdoj--1068--Girls and Boys(最大独立集)
Girls and Boys Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- EOJ 3037 十六进制加法
请编写程序实现两个十六进制整数的加法. 例如:十六进制整数 3762 和 05C3,3762+05C3 =3D25 十六进制整数 CB9 和 957,CB9+957=1610 Input 第 1 行: ...
- js设计模式-组合模式
组合模式是一种专为创建web上的动态用户界面而量身定制的模式.使用这种模式,可以用一条命令在多个对象上激发复杂的或递归的行为.这可以简化粘合性代码,使其更容易维护,而那些复杂行为则被委托给各个对象. ...