用java操作XML文件(DOM解析方式)
XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具。
XML的作用:
(1)用作配置文件
(2)简化数据共享
(3)简化数据传输
XML DOM解析方式
在java工程中导入dom4j.jar包.
(一)用java读XML文件
<1>创建SAXReader对象.
RAXReader reader=new RAXReader();
<2>调用RAXReader的Document read(File file)方法,获取xml文件的Document对象(包含xml文件的dom结构).
Document doc=reader.read(new File("config.xml"));
注:read有很多重载方法,还可以传入流对象.
<3>调用Document的 Element getRootElement()方法,获取xml的根元素.
Element root=doc.getRootElement();
<4>获取根元素之后,有很多Element方法,利用这些方法就可以不断的解析xml的dom结构.
(1)获取当前元素下的所有子元素
List<Element> elements()
(2)获取当前元素下的所有同名子元素
List<Element> elements(String name)
(3)获取当前元素指定名称的子元素
Element element(String name)
(4)获取当前元素的名称
String getName()
(5)获取当前元素的内容
String getText()
String getTextTrim()
(6)获取当前元素下指定名称的子元素内容
String elementText(String name)
(7)获取当前元素的属性
Attribute attribute(int index) //获取当前元素第index属性,从0开始
Attribute attribute(String name) //获取当前元素指定名称的属性
<5>属性Attribute的相关方法
(1)获取当前属性的名称
String getName()
(2)获取当前属性的值
String getValue()
(二)用java写xml文件
先创建document对象,然后不断补全document的DOM结构,最后把document对象写入指定xml文件中
<1>先创建一个document对象,必须使用DocumentHelper的静态方法Document static createDocument()来创建document对象
Document doc=DocumentHelper.createDocument()
<2>顶用Document的Element addElement()向document对象中添加指定名称根元素(只能调用一次,因为根元素只有一个)
Element root=doc.addElement(String name)
<3>后续,Element有很多方法,用于不断的补全Document的DOM结构
(1)在当前元素下添加指定名称的子元素(返回值是子元素)
Element addElement(String name)
(2)在当前元素添加其内容(返回值当前元素)
Element addText(String text)
(3)在当前元素添加器属性(返回值是当前元素,可以不断追加其属性)
Element addAttribute(String name,String value)
<4>补全DOM结构后,把document对象写入xml文件中
(1)创建XMLWriter高级流对象
XMLWriter writer=new XMLWriter();
注:XMLWriter writer=new XMLWriter(OutputStream os);,可省略第二步
(2)为XMLWriter设定低级输出流
FileOutputStream fos=new FileOutputStream("new.xml");
writer.setOutputStream(fos);
(3)将document对象写入xml文件中
wirter.write(doc);
(4)最后关闭XMLWriter流对象
writer.close();
用java操作XML文件(DOM解析方式)的更多相关文章
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
- mybatis源码-解析配置文件(一)之XML的DOM解析方式
目录 简介 Java 中 XML 文件解析 解析方式 DOM 解析 XML 新建 XML 文件 DOM 操作相关类 Java 读取 XML 文件 一起学 mybatis @ 简介 在之前的文章< ...
- 【文件处理】xml 文件 DOM解析
一.Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath 此文针对其中的DOM方法具体展开介绍及代码分析 sax.dom是两种对xml文档进行解析的方法(没有具体实 ...
- Java操作xml文件
Bbsxml.java public class Bbsxml { private String imgsrc; private String title; private String url; p ...
- java操作xml文件--修改节点
上一篇文章我介绍了SAX方法解析XML文件的过程,这篇文章讲解的内容是利用DOM方法修改XML文件的节点内容. 下面依然是首先贴出XML文件: <?xml version ...
- java操作XML文件--读取内容
先把问题贴出来:编写一个可以解析xml及修改xml内容的工具类 由于我以前做过Android应用程序开发,之前也解析过xml文件,所以,这道题不是很难,这篇文章我先解决第一个问 ...
- Java操作XML文件 dom4j 篇
在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...
- XML文件的解析方式
XML文件4种解析方式分别是:DOM解析,SAX解析,JDOM解析,DOM4J解析.1.基础方法:DOM:与平台无关的官方的解析方式.SAX:Java平台提供的基于事件驱动的解析方式.2.扩展方法(在 ...
- 【Java】XML文件的解析
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
随机推荐
- supervisor使用详解
1.什么是supervisorsupervisor是用python写的一个进程管理工具,用来启动,重启,关闭进程. 2.supervisor的安装 pip install supervisor 3.s ...
- Maven学习5-聚合与继承
一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <modules> 2 <module>模块一</module&g ...
- Java加密算法 RSA
Java加密算法 RSA 2015-06-06 08:44 511人阅读 评论(0) 收藏 举报 分类: JAVA(57) 公钥加密也称为非对称加密.速度慢.加密和解密的钥匙不相同,某一个人持有私 ...
- SQL语句统计每天、每月、每年的 数据
SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月 ...
- Visual Studio Enterprise 2015下载 Update3
Visual Studio 2015 是一个丰富的集成开发环境,可用于创建出色的 Windows.Android 和 iOS 应用程序以及新式 Web 应用程序和云服务. 1.适用于各种规模和复杂程度 ...
- [CF442C] Artem and Array (贪心+单调栈优化)
题目链接:http://codeforces.com/problemset/problem/442/C 题目大意:一个数列,有n个元素.你可以做n-2次操作,每次操作去除一个数字,并且得到这个数字两边 ...
- Chap5:32– 34
32. 从 1 到 n 整数中 k (0,1, 2, 3, 4, 5, 6, 7, 8, 9)出现的次数. 时间 O(log10N) A. 当 K != 0 时: 以 n = 2014,K = 1 ...
- dedecms代码研究三
上次,我们从dedecms的index.PHP文件中了解到了很多信息,也提出了一些问题: 1)加载了/include/common.inc.php,里面做了哪些工作? 2)/include/arc.p ...
- IO同步、异步与阻塞、非阻塞
一.同步与异步同步/异步, 它们是消息的通知机制 1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例如si ...
- vc6 编译问题
Compiling...main.cppLinking...MSVCRT.lib(MSVCRT.dll) : error LNK2005: _malloc already defined in LIB ...