目录
XML解析方式 1
SAX解析与DOM解析的区别 1
DOM解析XML过程 2
DOM解析代码 2
SAX解析XML过程 3
SAX解析代码 4
DOM4j解析 5
DOM4j解析优缺点 5
DOM4j解析过程 6
DOM4J解析代码 6
DOM4J其他相关 7
XML解析方式
DOM解析
Dom解析是将xml文件全部载入,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件
SAX解析
SAX接口:是基于事件的,它不能随机解析,解虽然解析速度最快(目前), 只能由顶到尾进行解析, 适合解析xml文件的内容比较文件.
解析原理:
A) 加载文件xml文件: -> 触发 startDocument() 方法
B) 当到元素开头时: -> 触发()方法
C) 如果标签体有内容时: -> 触发characters()方法可以获得元素标签体的值
D) 如果遇到空元素时:-> 会把空节点作为空格输出,但不会触发它的startElement() 和 endElement()方法
E) DOM接口:(dom4j和jdom继承了DOM)
SAX解析与DOM解析的区别
:
a) 相同点:
1)DOMParse 和 SAXParse 都是同一个类,.
.XMLParser的扩展
2)SAX或DOM使用的parse().
.XMLParser的方法
b) 不同点:
1)DOMParser 类中仅增加了 getDocument()方法
2)SAX使用的是事件回调机制,不同的实例引发不同的事件
3)DOM适用于小型xml文件
Sax不能随机定位到每个元素
Sax只能读出xml文件中的内容
Sax是目前解析xml速度最快的
Sax是基于事件的(observer)
:
DOM先读取在解析,
DOM解析XML过程
1. 首先创建DOM解析的解析工厂实例(我们将通过工厂实例创建DOM解析器实例)
DOM解析工厂(DocumentBuilderFactory)
2. 通过DOM工厂创建DOM解析器
DOM解析器(DocumentBuilder)
创建XML文件流,调用DOM解析器的parse方法,将XML转换成为一个Document对象(Document)
读取Document 对象中的节点,及属性方法在API中提供
DOM解析代码
import ;
import ;
import ;
.;
.;
.;
.;
public class DomParse {
//DOM解析方法
public void parse(InputStream in) throws Exception{
//创建一个文档解析工厂实例
DocumentBuilderFactory dbf = ();
//根据解析工厂创建一个解析器
DocumentBuilder db = ();
//将解析器将文件流转换为文档对象
Document doc = (in);
//根据文档对象查找到 XML的根节点
Element root = ();
//用循环将所的节点打印出来
for(Node node=();node
!=null;node=()){
("[节点名称:"+()+",节点类型:"+()+"]");
}
//获取以student标记的所有节点元素
NodeList nlist = ("student");
for(int i=0;i<
XML解析教学 来自淘豆网m.daumloan.com转载请标明出处.