Dom4j 封装DOM和SAX 的方法
Dom4j 封装DOM的解析XML文件的方法:
List<Book> bookList=new ArrayList<Book>();
//1.1 建立一个解析器工厂:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//1.2 获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器
DocumentBuilder db = dbf.newDocumentBuilder();
//1.3 将xml文件加载到内存中,得到表示整个文档的Document对象
InputStream inStream=DomParser.class.getClassLoader().getResourceAsStream("book.xml");
org.w3c.dom.Document w3cdoc=db.parse(inStream);
//2.创建一个DOMReader
DOMReader domReader=new DOMReader();
//3.将org.w3c.dom.Document转成org.dom4j.Document
org.dom4j.Document doc=domReader.read(w3cdoc);
Element ele=doc.getRootElement();//3.获得根节点
//4.使用迭代器对子节点进行迭代
Iterator<Element> it=ele.elementIterator();
while(it.hasNext()){
Book book=new Book();
Element bookEle=it.next();//取出当前的迭代的元素
book.setId(bookEle.attributeValue("id"));//attributeValue:根据属性名获得属性值
book.setName(bookEle.element("name").getText());
book.setAuthor(bookEle.elementText("author"));
bookList.add(book);
Dom4j 封装SAX的解析XML文件的方法:
List<Book> bookList=new ArrayList<Book>();
InputStream inStream=DomParser.class.getClassLoader().getResourceAsStream("book.xml");
SAXReader saxReader=new SAXReader();//1. 创建sax解析器
org.dom4j.Document doc=saxReader.read(inStream);//2. 获得org.dom4j.Document文档对象
Element ele=doc.getRootElement();//3.获得根节点
//4.使用迭代器对子节点进行迭代
Iterator<Element> it=ele.elementIterator();
while(it.hasNext()){
Book book=new Book();
Element bookEle=it.next();//取出当前的迭代的元素
book.setId(bookEle.attributeValue("id"));//attributeValue:根据属性名获得属性值
book.setName(bookEle.element("name").getText());
book.setAuthor(bookEle.elementText("author"));
bookList.add(book);
Dom4j 生成XML文件
import java.io.FileWriter; import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
* dom4j
* @author bwf
*
*/
public class TestDom4j2 {
public static void main(String[] args) throws Exception { //创建Document
Document dom=DocumentHelper.createDocument();
//创建根节点
Element root=dom.addElement("我爱吃水果");
//创建元素,并附加属性
Element item1=root.addElement("水果").addAttribute("编号", "001");
Element name1=item1.addElement("名字").addText("苹果"); Element item2=root.addElement("水果").addAttribute("编号", "002");
Element name2=item2.addElement("名字").addText("柚子"); Element item3=root.addElement("水果").addAttribute("编号", "003");
Element name3=item3.addElement("名字").addText("草莓"); //美化格式
OutputFormat format = OutputFormat.createPrettyPrint();
//文件
FileWriter w=new FileWriter("c:/Users/bwf/Desktop/food.xml");
//输出流
XMLWriter writer =new XMLWriter(w,format); writer.write(dom);
writer.close();
}
}
Dom4j 封装DOM和SAX 的方法的更多相关文章
- iOS开发中XML的DOM和SAX解析方法
		
一.介绍 dom是w3c指定的一套规范标准,核心是按树形结构处理数据,dom解析器读入xml文件并在内存中建立一个结构一模一样的“树”,这树各节点和xml各标记对应,通过操纵此“树”来处理xml中的文 ...
 - DOM、SAX、JDOM、DOM4J四种XML解析方法PK
		
基础方法(指不需要导入jar包,java自身提供的解析方式):DOM.SAXDOM:是一种平台无关的官方解析方式 --优点: (1)形成了树结构,直观好理解,代码更易编写 ...
 - dom4j的测试例子和源码详解(重点对比和DOM、SAX的区别)
		
目录 简介 DOM.SAX.JAXP和DOM4J xerces解释器 SAX DOM JAXP DOM解析器 获取SAX解析器 DOM4j 项目环境 工程环境 创建项目 引入依赖 使用例子--生成xm ...
 - java中四种操作(dom、sax、jdom、dom4j)xml方式详解与比较
		
1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特 ...
 - java操作xml方式比较与详解(DOM、SAX、JDOM、DOM4J)
		
java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式的比较与详解 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...
 - XML解析【介绍、DOM、SAX详细说明、jaxp、dom4j、XPATH】
		
什么是XML解析 前面XML章节已经说了,XML被设计为"什么都不做",XML只用于组织.存储数据,除此之外的数据生成.读取.传送等等的操作都与XML本身无关! XML解析就是读取 ...
 - java xml解析方式(DOM、SAX、JDOM、DOM4J)
		
XML值可扩展标记语言,是用来传输和存储数据的. XMl的特定: XMl文档必须包含根元素.该元素是所有其他元素的父元素.XML文档中的元素形成了一颗文档树,树中的每个元素都可存在子元素. 所有XML ...
 - XML解析之DOM详解及与SAX解析方法的比较
		
XML解析(DOM) XML文件解析方法介绍 我们所用到的NSXMLParser是采用SAX方法解析 SAX(Simple API for XML) 只能读,不能修改,只能顺序访问,适合解析大型XML ...
 - java基础71  XML解析中的【DOM和SAX解析工具】相关知识点(网页知识)
		
本文知识点(目录):本文下面的“实例及附录”全是DOM解析的相关内容 1.xml解析的含义 2.XML的解析方式 3.xml的解析工具 4.XML的解析原理 5.实例 6 ...
 
随机推荐
- json与csv的基础用与法
			
json库是处理json格式的python标准库 有两个过程: 编码(encoding):将python数据类型转换为json格式的过程 解码(decoding):从json格式中解析数据得到的pyt ...
 - Install Oracle Database client in silent mode
			
下面通过在工作中的使用,总结出不同版本Oracle client的静默(silent)安装方法. Oracle Database client 12.2.0.1 1. reponse file con ...
 - 关于ASP.NET 服务器报错 Server Error in '/' Application Runtime Error 错误及解决方法
			
今天遇到一个错误 程序在服务器上运行时报错 先贴上错误代码 自己也在网上找了一些解决方法,把错误定位到服务器的配置文件也就是Web.config的问题, 于是在system.web节点下 加上cust ...
 - Linux内核d_path函数应用的经验总结
			
问题背景 一个内核模块中,需要通过d_path接口获取文件的路径,然后与目标文件白名单做匹配. 在生产环境中,获取的文件是存在的,但是与文件白名单中的文件总是匹配失败. 问题定位: 通过打印d_pat ...
 - python bmp转jpg 且灰度图转彩色
			
今天在简书,上看到了一个 bmp转jpg的代码,便记录一下. # coding:utf-8 import os from PIL import Image # bmp 转换为jpg,灰度图转RGB d ...
 - std::remove_reference
			
[std::remove_reference] 用于移除类型的引用,返回原始类型. 1.可能的实现. 2.例子. #include <iostream> // std::cout #inc ...
 - 使用Vue-Router路由
			
Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数. ...
 - 操作CSS样式公共方法库
			
项目中常用的一些方法,我们都封装到公共方法库 let utils = (function () { //=>获取元素的样式 let getCss = function (curEle, attr ...
 - python之字符串及其方法---整理集
			
字符串方法 1.capitalize方法:字符串首字母大写 举例: test="alex" v=test.capitalize() print(v) 返回结果: Alex 2.ca ...
 - 利用百度编辑器和IIS限制文件上传的大小
			
1.百度编辑器的大小限制 针对不同的文件类型限制大小 例如图片是imageMaxSize ,依次类推 /* 前后端通信相关的配置,注释只允许使用多行方式 */ { /* 上传图片配置项 */ ...