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 ...
随机推荐
- EA强大的画图工具---设计数据库表格
http://blog.csdn.net/senior_lee/article/details/30272169?utm_source=tuicool 关于EA这个优秀的软件是从师哥哪里听来的,自己瞎 ...
- PHP中数组转换为XML格式
最近公司要做一个API接口,输出格式要有JSON与XML格式, 在PHP中,输入JSON直接json_encode就可以,但输出XML没有提供函数,于是决定自己写一个. <?php /** * ...
- [原创]HTML5 web性能监控策略
web性能重要指标--时长 通常在监控前端页面性能的时候,我们会需要获取到很多的时间戳,比如用户按下回车的时候开始计时,但这个时候,我们统计的js代码并没有加载过来,也无法读取到相关的信息.在HTML ...
- MYSQL存储过程和函数学习笔记
学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆课程笔记的综合. 1. 什么是存储过程和函数 将SQL语句放入一个集合里,然后直接调用存储过程和函数来执行已经定义好的SQL语句,通过存储过程和 ...
- Eclipse设置保存时自动给变量加final
也是针对checkstyle的,在代码检查规范时,所有的变量必须是final.为了解决这个问题,通过以下的设置可以在eclipse保存时,自动给没有加final的变量加上final. Window-& ...
- Django之路由系统
一.路由系统介绍 在django程序中,可以通过urls.py文件对所有的url进行任务的分配,根据路由规则的定义选择不同的业务处理函数进行处理 二.路由规则定义 1.路由规则代码如下,mysite/ ...
- Javascript:数组和字符串的相互转化
中午吃饭的时候,和室友讨论前端的问题,然后一个有趣的问题被抛出来: javascript用什么方法可以把“hello world”位置反转输出,即输出:"dlrow olleh"? ...
- Windows下Hadoop的环境安装[转]
1.下载并安装Cygwin,记得cygwin安装中要把SSH选择上,因为后面Hadoop会用到,不详述cygwin的安装过程.我是安装在D:\cygwin下 2.配置系统环境变量 在windows命令 ...
- ICE 介绍及实现
.ICE是什么? ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个面向对象的中间件,使我们能够 ...
- java设计模式---原型模式
原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式结构图 通俗来说:原型模式就是深拷贝和浅拷贝的实现. 浅拷贝 只实现了值拷贝,对于引用对象还是 ...