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 ...
随机推荐
- C语言的一个关键字——static
Static在C语言里面有两个作用,第一个是修饰变量,第二个是修饰函数. 1.Static修饰变量 按照作用范围的不同,变量分为局部变量和全局变量.如果用static修饰变量,不论这个变量是全局的 ...
- Java---设计模式app小软件汇总应用
写了一个app小软件,重点不在于软件,软件bug挺多,也没去修改. 这个小软件只是为了更好的说明和了解设计模块而做的. Java 程序设计–包结构 Java程序设计的系统体系结构很大一部分都体现在包结 ...
- Android取得屏幕的高度和宽度
//获得手机屏幕的宽度和高度 width=getWindowManager().getDefaultDisplay().getWidth(); height=getWindowManager().ge ...
- Hadoop2.4.1 使用MapReduce简单的数据清洗
package com.bank.service; import java.io.IOException;import java.text.ParseException;import java.tex ...
- hand第四次考核
使用Spring与Mybatis技术实现下要求: (2分)1,Spring的配置文件名称为ApplicationContext.xml (2分)2,在ApplicationContext.xml中配置 ...
- HBase的rowkey的设计原则
HBase是三维有序存储的,通过rowkey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中的数据进行快速定 ...
- 关于使用mybatis插件自动生成代码
1.安装 mybatis 插件: 在 eclipse 中 点击 help-->Install New Software...--> Add --> local 选择插件中eclip ...
- [ES6] Rest Parameter
Problem with the ES5: function displayTags(){ for (let i in arguments) { let tag = arguments[i]; _ad ...
- Linux字符设备驱动
一.字符设备基础 字符设备 二.字符设备驱动与用户空间访问该设备的程序三者之间的关系 三.字符设备模型 1.Linux内核中,使用 struct cdev 来描述一个字符设备 动态申请(构造)cdev ...
- Java 之 StringTokenizer
class StringTokenizer Object to: break a string into tokens. Contructs StringTokenizer(String str) ...