XML解析
教师:xxx
java解析xml四种方式
DOM (Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的标准接口, DOM采用建立树形结构的方式访问XML文档.
SAX(Simple API for XML) 不是某个官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它, SAX解析器采用了基于事件的模型
JDOM(注意JDOM决不是DOM扩展,虽然名字差不多,但两者平行的关系)是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快
DOM4J具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM(Java API for XML Messaging )也在用DOM4J。目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件.
2
Java技术+ XML
一种完美的组合
Java平台是一种跨平台的编程环境
XML是一种跨平台的数据格式
与其他语言相比,Java平台提供了更好的XML支持
3
DOM
Document Object Model的缩写
通过树型结构存取XML文档
..*
4
基于树的处理
使用 DOM 时,数据以类树结构被装入内存中。
DOM 使用根节点和父子关系。
5
DOM 示意
解析器
创建的树
输入
XML文档
6
DOM代码例子
public static void main(String[] args) {
//获取 DocumentBuilderFactory 的新实例。
DocumentBuilderFactory dbf=();
//指定由此代码生成的解析器将忽略注释
(true);
//设置忽略空格
(true);
DocumentBuilder db=null;
Document document=null;
try {
//获取DocumentBuilder的实例
db=();
File file=new File("D:\\itcastworkspace\\xmldom\\src\\cn\\itcast\\dom\\");
document=(file);
7
DOM代码例子
//按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList
NodeList nodeList=("name");
for(int i=0;i<();i++){
Node node=(i);
//输出标记的值
(().getNodeValue());
}
} catch (ParserConfigurationException e) {
();
} catch (SAXException e) {
();
} catch (IOException e) {
();
}
}
8
DOM 的问题
DOM 构建整个文档驻留内存的树。如果文档很大,就会要求有极大的内存。
DOM 创建表示原始文档中每个东西的对象,包括元素、文本、属性和空格。如果您只需关注原始文档的一小部分,那么创建那些永远不被使用的对象是极其浪费的。
DOM 解析器必须在您的代码取得控制权之前读取整个文档。对于非常大的文档,这会引起显著的延迟。
9
SAX
Simple API for XML的缩写
串行存取文档
轻量级、快速
编程较难
..*
10
XML解析教程 来自淘豆网m.daumloan.com转载请标明出处.