能够操作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的更多相关文章

  1. 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!

    我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...

  2. C# XML文件操作

    C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...

  3. XML文件解析之DOM4J解析

    1.DOM4J介绍 dom4j的官网是http://www.dom4j.org/dom4j-1.6.1/,最新的版本是1.6.1,根据官网介绍可知.dom4j是一个易用的.开源的库,应用于Java平台 ...

  4. XML文件操作类--创建XML文件

    这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...

  5. PHP对XML文件操作之属性与方法讲解

    DOMDocument相关的内容. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definit ...

  6. 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml

     数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...

  7. SpringBatch Sample (三)(XML文件操作)

    前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作.实例流程是 ...

  8. C#XML文件操作随笔

    以为公司一直没有电源屏厂家协议解析为DevVars相关的软件,手写费时费力还容易出错,用了2天时间做了一个.txt协议文件筛选加并解析成xml文件的工具,总结一下用到的几个知识点 1.LINQ 是一个 ...

  9. XML文件(2)--使用DOM4J示例

    其他依赖字段/方法 private List<Book> bookList = new LinkedList<Book>(); public List<Book> ...

随机推荐

  1. 转载:Java中的Checked Exception——美丽世界中潜藏的恶魔?

    转自 Amber-Garden 的 博客 https://www.cnblogs.com/loveis715/p/4596551.html 在使用Java编写应用的时候,我们常常需要通过第三方类库来帮 ...

  2. 34.初识搜索引擎及timeout机制

    主要知识点 1.对搜索执行结果的说明 2.timeout机制讲解 一.对执行 GET /_search 的结果的说明 执行结果如下(只保留部分) { "took": 29, &qu ...

  3. 第一个go程序和基本语法

    目录 第一个go程序和基本语法 一. 第一个go程序 二. 基础语法 1. 命名 2. 变量 3 常量与枚举 4. 数据类型 5. fmt包的使用 6. 类型别名 7. 类型转换 8. 运算符 第一个 ...

  4. react 点击事件+父子传值

    接下来要做的效果是,在父组件添加两个按钮,点击后改变父组件传过去的值 父组件 import React, { Component } from 'react'; import Test from '. ...

  5. js实现的时间轴效果

    今天整理以前的资料发现以前写的一个时间轴效果,当时也是网上找了很久没有找到,就自己写了一个,现在发出来给有需要的人,代码写的可能有点乱. 效果图: 下面是美工做的设计图的效果(有个美工就是好): 下面 ...

  6. 0709关于mysql优化思路【何登成】

    转自 http://isky000.com/database/mysql-performance-tuning-sql 优化目标 减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所 ...

  7. Ext.TabPanel中的items具体解释

    Ext.TabPanel中的items: (来自项目源代码中的items条目代码) items:{ id:"opt1", title:"默认页面", tabTi ...

  8. HDU 2830 Matrix Swapping II (预处理的线性dp)

    Matrix Swapping II Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. Java类的多态机制

    Java中将一个方法调用同一个方法主体关联起来被称作绑定. 绑定分为前期绑定和后期绑定.前期绑定是在编译器决定的,而后期绑定是在程序运行时决定的.Java中除了static方法和final方法(pri ...

  10. PHP自己定义函数及数组

    个人原创博客:http://www.phpthinking.com/archives/350 一.自己定义函数 自己定义函数就是我们自己定义的函数.在PHP中自己定义函数格式例如以下: 1 funct ...