首页 > 代码库 > Java 处理 XML 的三种主流技术及介绍——主要转自 IBMhttp://www.ibm.com/developerworks/cn/xml/dm-1208gub/
Java 处理 XML 的三种主流技术及介绍——主要转自 IBMhttp://www.ibm.com/developerworks/cn/xml/dm-1208gub/
XML (eXtensible Markup Language) 意为可扩展标记语言:是数据传输的载体
XML 3种主要解析方式:
a.DOM:W3C 处理 XML 的标准 API
工作模式:在处理开始时将整个 XML 文件作为类似树结构的方式读入内存中以便操作及解析
优点: 支持应用程序对 XML 数据的内容和结构进行修改
缺点:解析大数据量的 XML 文件时会遇到类似于内存泄露以及程序崩溃的风险
适用范围:小型 XML 文件解析、需要全解析或者大部分解析 XML、需要修改 XML 树内容以生成自己的对象模型
b.SAX(流解析方式)
工作模式:流解析的技术,通读整个 XML 文档树,通过事件处理器来响应程序员对于 XML 数据解析的需求
优点: 不需要将整个 XML 文档读入内存当中,它对系统资源的节省,支持 XPath 查询的
缺点: 繁琐, 每次解析系统开销也会过大
适用范围:大型 XML 文件解析、只需要部分解析或者只想取得部分 XML 树内容、有 XPath 查询需求、有自己生成特定 XML 树对象模型的需求
c.Digester/JAXB XML的JavaBean化
适用范围: 有将 XML 文档直接转换为 JavaBean 需求。
知识点一。
api 解析
Document
from XML.[定义了 从一个XML文档获取一个DOM文档实例,运用这个类程序员可从XML获取Document 接口]DocumentBuilderFactory.newDocumentBuilder()
method. Once an instance of this class is obtained, XML can be parsed from a variety of input sources. These input sources are InputStreams, Files, URLs, and SAX InputSources.[通过 DocumentBuilderFactory.newDocumentBuilder()的静态方法获取该实例。(注意该类的构造器是受保护的访问权限。禁止实例化) 一旦该类实例被获取,各种输入源的XML就能够被解析。这些输入的资源可以是输入流、文 件、RUL、流输入资源
]示例:
清单 1. XML 片段
<xml version="1.0" encoding="UTF-8">
<books>
<book>
<title id="001">Harry Potter</title>
<author>J K. Rowling</author>
</book>
<book>
<title id="002">Learning XML</title>
<author>Erik T. Ray</author>
</book>
</books>
DOM 解析XML
Java 处理 XML 的三种主流技术及介绍——主要转自 IBMhttp://www.ibm.com/developerworks/cn/xml/dm-1208gub/