XML解析之dom4j
一、XML解析方式有两类:
一】DOM(文档对象模型)
1)一次性将整个XML文件读到内存,形成一颗DOM树
二】SAX(XML的简单API)[simple API for XML]
1)SAX多次将XML文件的每部分读到内存
二、步骤:
一】利用SAXReader类获取Document对象
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("src/com/suse/simpledom4j/car.xml"));
二】通过Document获取元素和属性
常用方法:
得到子元素的List集合: List elements()
得到元素的名称: String getName()
得到指定子元素引用: Element element("子元素名称");
得到子元素封装的信息: String elementText("子元素名称");
得到元素的属性值: String attributeValue("属性名");
添加一个子元素: Element addElement("子元素名称");
设置元素封装的信息: void setText("封装的信息");
删除一个子元素: boolean remove(子元素引用);
将元素转换成字符串: String asXML();
三】通过XMLWriter类将内存中的XML文件回写到硬盘上
常用类及方法:
1)OutputFormat对象:制定流的输出时在文档中的显示格式
常用方法:
返回一个优美的格式器对象:static OutputFormat createPrettyPrint();
2) XMLWriter流对象:用于将内存中的XML文件输出到硬盘上
构造方法:
XMLWriter(输出流)
常用方法:
将内存中的XML写入到硬盘上:void writer(Document document);
关闭流:void close();
三、对XML文件进行增删改查
code:
private Document getDocument() throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("src/com/suse/simpledom4j/car.xml"));
return document;
}
@Test
public void add() throws Exception {
Document document = getDocument();
Element element = document.getRootElement();
Element carElement = (Element) element.elements().get(0);
Element priceElement = carElement.addElement("价格");
priceElement.setText("20万");
doc2XML(document);
}
@Test
public void delete() throws Exception {
Document document = getDocument();
Element element = document.getRootElement();
List<Element> elmentList = element.elements();
Element carElement = elmentList.get(0);
Element priceElement = carElement.element("价格");
carElement.remove(priceElement);
doc2XML(document);
}
@Test
public void update() throws Exception {
Document document = getDocument();
Element rootElement = document.getRootElement();
Element carElement = (Element) rootElement.elements().get(0);
carElement.element("价格").setText("60万元");
doc2XML(document);
}
@Test
public void select() throws Exception {
Document document = getDocument();
Element rootElement = document.getRootElement();
Element carElement = (Element) rootElement.elements().get(0);
String price = carElement.element("价格").getTextTrim();
System.out.println("价格为:" + price);
}
private void doc2XML(Document doc) throws Exception {
//得到一个格式优美的格式输出器
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
File file = new File("src/com/suse/simpledom4j/car.xml");
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file), outputFormat);
xmlWriter.write(doc);
xmlWriter.close();
}
四、其它API
一】 DocumentHelper对象:
static Document createDocument();//创建一个Document对象
static Element createElement("元素名");//创建一个元素,并返回此元素的子类【注:可以使用】
static Document parseText("符合XML格式的字符串");//创建一个document对象并返回
二】在指定位置插入节点元素
----通过List集合的add(index,E)方法
方法原型:
void add(int index, E element);
三】字符串与XML文件的转换
1)字符串 ---> XML
通过parseText方法
eg:
String text = "<members> <member>sitinspring</member></members>";
Document dDocument = DocumentHelper.parseText(text);
2)XML ---> 字符串
通过asXML方法:Document、和Element对象都具有此方法
eg:
SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));
Element rootElement = docuemnt.getRootElement();
Element memberElement = root.element("member"); String str_doc = document.saXML();
String str_rootEle = rootElement.asXML();
String str_memberEle = memberElement.asXML();
XML解析之dom4j的更多相关文章
- Java XML解析工具 dom4j介绍及使用实例
Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...
- 【Java】XML解析之DOM4J
DOM4J介绍 dom4j是一个简单的开源库,用于处理XML. XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP,使用需要引用dom4j.jar包 ...
- xml解析 使用dom4j操作xml
使用dom4j操作xml 1 导入 dom4j,的jar包 2 指定要解析的XML文件 SAXReader sr=new SAXReader(); Document document= sr.r ...
- XML 解析之 dom4j 解析器
dom4j 的使用需要导入 jar 包, 包括: dom4j-1.6.1 和 jaxen-1.1-beta 步骤: 在项目目录下,"Folder" 创建一个 lib 文件夹 复制 ...
- Java -- XML解析工具dom4j
前言 XML现已成为一种通用的数据交流方式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便,对于XML的解析有四种方式:DOM生成和解析XML文档,SAX生成和解析XML文件 ...
- XML解析技术-dom4j
- DOM综合案例、SAX解析、StAX解析、DOM4J解析
今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...
- 具体解释XML解析(一)—解析接口浅析
在DRP项目中接触到了一个XML解析工具DOM4J,它作为解析工具的据说性能很优秀.可是刚刚接触解析工具不久,而且也没有使用过其它的解析工具.因此对于DOM4J的性能没有直接的感受(没有參照物).只是 ...
- Dom4j解析Xml文件,Dom4j创建Xml文件
Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...
随机推荐
- 最全的TV视频应用合集,包含50多款客户端,有丰富直播点播
这是我目前找到的 最好的视频应用合集,与坛友分享下.有50多款视频客户端,基本覆盖目前市面上口碑比较好的视频应用了. 里面有丰富的直播客户端,像 龙龙直播.泰捷直播.果子 Tv.More Tv等,还有 ...
- java调优随记-堆和栈
基础知识: 关于堆和栈,堆和栈是程序运行的关键,关于堆和栈的定义和解释可自行搜索,我比较认可以程序运行过程中他们扮演的角色作为对比的点:堆是存储的单位,而栈是程序运行时的单位.栈解决的是程序的运行问题 ...
- 【转】ubuntu连接android设备(附最简单方法)
原文网址:http://blog.csdn.net/maosidiaoxian/article/details/22661725 在ubuntu下连接android设备,虽然不用像windows那样安 ...
- java并发5-volatile关键字解析
http://www.cnblogs.com/dolphin0520/p/3920373.html 一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程 ...
- 【剑指offer】面试题24:二叉搜索树的后序遍历序列
题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 思路: 递归 注意,主要就是假定数组为空时结果为fa ...
- hadoop2.2.0的WordCount程序
package com.my.hadoop.mapreduce.wordcount; import java.io.IOException; import org.apache.hadoop.conf ...
- JDBC编程之优化
1.创建 dbconfig.properties driver=com.mysql.jdbc.Driver dburl=jdbc\:mysql\://localhost\:3306/mytest us ...
- (原)Mac下Apache添加限制IP线程模块:mod_limitipconn.so
1.下载:http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2 解压到一个目录:我的是~/Download/mod_limitipcon ...
- android后台截屏实现(3)--编译screencap
修改好之后就要编译了,screencap的编译是要在源码环境中进行的. 将修改后的screencap.cpp文件替换源码中的原始文件,然后修改screencap的Android.mk文件,修改后的文件 ...
- IOS成长之路-Nsstring中搜索方法rangeOfString
NSString *str1 = @"can you \n speak English"; NSString *str = @"\n"; //在str1这个字符 ...