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> ...
随机推荐
- Bamboo Django Celery定时任务和时间设置
1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...
- Nginx Rewrite(伪静态)
一.作用: 实现URL地址改写. 二.语法: 例:rewrite ^/(.*) http://bbs.wangguangtao.com/$1 permanent; 注:应用位置server.loeat ...
- ls命令:显示文件或目录
ls:显示目录下的内容及相关属性信息 [命令详解] [功能说明] ls命令可以理解为英文list的缩写,其功能是列出目录的内容及其内容属性信息(list directory contents).该命令 ...
- Full-featured Vue 评分组件
分享一下最近写的 vue 的评分组件 Features: 支持半星.可清除.文案展示.只读.自定义颜色.自定义字符及图片等.支持 hover 的时候改变 value.内置三种样式,以及非常好看 DEM ...
- vue 注册全局组件
注册全局组件有啥好处呢? 提高代码的复用性:哪里需要写哪里,贼方便,就写一个标签:减少代码量:可以再配合slot一起使用,咦~~,舒服 为了让整个项目的可读性,我创建一个文件统一存放全局组件 1.创建 ...
- SPOJ 1812 LCS2 - Longest Common Substring II (后缀自动机、状压DP)
手动博客搬家: 本文发表于20181217 23:54:35, 原地址https://blog.csdn.net/suncongbo/article/details/85058680 人生第一道后缀自 ...
- QT中tableview不能更新数据,why?
model->select(); //model->removeColumn(0);++++++++++++++++++++ //model->setHeaderData(model ...
- (28)SpringBoot启动时的Banner设置【从零开始学Spring Boot】
对于使用过Spring Boot的开发者来说,程序启动的时候输出的由字符组成的Spring符号并不陌生.这个是Spring Boot为自己设计的Banner: 1. . ____ ...
- (24)Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
凡是被Spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的变量. com. ...
- Spring Boot上传文件
我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <parent> <groupId>org.springframework.boot& ...