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 ... 
随机推荐
- 使用jTessBoxEditorFX训练Tesseract-OCR教程
			使用jTessBoxEditorFX训练Tesseract-OCR教程 注:1,工具是JAVA编写的,所以在使用工具之间,需要安装JAVA环境. 2,安装Tesseract-OCR应用程序,并将目录添 ... 
- nodeJs 操作Mysql数据库
			nodeJs下操作数据库需要安装npm模块: mysql npm install mysql --save-dev 新建express项目 express --view=ejs 在项目根目录下新建数据 ... 
- rest_famework 增删改查初第三阶段(高级,此阶段是优化第二阶段的代码)的使用
			url: re_path('authors/$', views.AuthorView.as_view()), re_path('book/(?P<pk>\d+)/$', views.Boo ... 
- Java好的的工具类:JSONResult
			package com.nxhfzx.gdshopping.entity; import java.util.List; import com.fasterxml.jackson.databind.J ... 
- K-Means算法:图片压缩
			#读取实例图片# from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import ma ... 
- Grafana报警--通知渠道配置
			最近研究了prometheus+grafana的系统监控,使用grafana的报警功能,grafana支持很多种通知渠道,下文记录使用到的几种notification channels,分别是emai ... 
- pytorch1.0  安装执行后报错ImportError: No module named future.utils
			File "/usr/local/lib/python2.7/dist-packages/caffe2/python/utils.py", line 10, in <modu ... 
- MVC过滤器使用方法
			先介绍下什么是过滤器:ASP.NET MVC中的灭一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理,这时就用到了过滤器. MVC支持的过滤器有 ... 
- android  HTTP镜像
			mirrors.neusoft.edu.cn 80 
- Python基础-文件操作(七)
			一.文件基本操作 1.open 打开模式: w模式 写模式write 文件不存在时会创建文件,如果文件已存在则会清空文件 r模式 读模式read 文件不存在就报错,存在则准备读取文件 a模式 追加模式 ... 
