XML系列:(3)XML解析

xml文件除了给开发者看,更多的情况使用程序读取xml文件的内容,这叫做xml解析

1、XML解析方式和工具

1.1、XML解析方式

XML解析分为两种方式:DOM和SAX。

DOM:W3C组织推荐的一种解析方式。xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容。缺点: 不适合读取大容量的xml文件,容易导致内存溢出。

SAX:(Simple API for XML)
不是官方标准,它产生自XML社区,几乎所有的XML解析器都支持它。加载一点,读取一点,处理一点。对内存要求比较低。

JDK6.0提供新的解析方式StAX(Stream API for XML)

1.2、XML解析工具

DOM解析原理:

1)JAXP (oracle-Sun公司官方)

2)JDOM工具(非官方)

3)Dom4J工具(非官方) 三大框架(默认读取xml的工具就是Dom4j)

SAX解析原理

1)Sax解析工具(oracle-sun公司官方)

2、DOM与SAX/StAX的区别

DOM解析

会把整个XML载入内存,以DOM树的形式存储,支持回写

如果XML文档特别大,就会消耗计算机大量内存,容易导致内存溢出

SAX/StAx解析

相比DOM是一种更为轻量级的方案

采用串行方式读取,基于事件驱动解析

编程相对复杂

不支持回写,无法在读取过程中修改XML数据

DOM解析 vs SAX解析
序号 视角 DOM解析 SAX解析
1 原理 一次性加载xml文档,不适合大容量的文件读取 加载一点,读取一点,处理一点。适合大容量文件的读取
2 支持操作 DOM解析可以任意进行增删改读 SAX解析只能读取
3 是否支持回读 DOM解析任意读取任何位置的数据,甚至往回读 SAX解析只能从上往下,按顺序读取,不能往回读
4 编程方法 DOM解析面向对象的编程方法(Node,Element,Attribute),Java开发者编码比较简单。 SAX解析基于事件的编程方法。java开发编码相对复杂。
时间: 2024-12-13 01:34:48

XML系列:(3)XML解析的相关文章

Java学习之Xml系列五:SAX解析——搜索xml内容

本文对SAX解析进一步说明. 另外主要给利用SAX解析方法找到指定条件(如标签名称)的xml文档内容. 首先按需要介绍一下DefaultHandler. DefaultHandler类是SAX2事件处理程序的默认基类.它继承了EntityResolver.DTDHandler.ContentHandler和ErrorHandler这四个接口.包含这四个接口的所有方法,所以我们在编写事件处理程序时,可以不用直接实现这四个接口,而继承该类,然后重写我们需要的方法.(注意:ContentHandler

标准库系列之xml模块

Python标准库系列之xml模块 Python's interfaces for processing XML are grouped in the xml package. 带分隔符的文件仅有两维的数据:行和列.如果你想在程序之间交换数据结构,需要一种方法把层次结构.序列.集合和其他的结构编码成文本. XML是最突出的处理这种转换的标记(markup)格式,它使用标签(tag)分个数据,如下面的实例文件menu.xml所示: <?xml version="1.0" encod

Java SE之XML&lt;二&gt;XML DOM与SAX解析

[文档整理系列] Java SE之XML<二>XML DOM与SAX解析 XML编程:CRUD(Create Read Update Delete) XML解析的两种常见方式: DOM(Document Object Model): 特点:树状解析 优点:[更适合对XML文档的(crud)操作.]对XML文档增删改查操作很方便灵活 缺点:内存消耗很大,不适合数据量很大,节点很多的XML文档. SAX(Simple API for XML): 特点:自上往下顺序解析 优点:[占用内存小,解析速度

JAVASE02-Unit012: Unit07: XML语法 、 XML解析

Unit07: XML语法 . XML解析 emplist.xml <?xml version="1.0" encoding="UTF-8"?> <list> <emp id="1"> <name>张三</name> <age>34</age> <gender>男</gender> <salary>3000</salary

XML.03-DOM和SAX解析

body,td { font-family: calibri; font-size: 10pt } XML.03-DOM和SAX解析 XML的DOM解析 解析 处理 回写 XML的SAX解析 SAX和DOM方式的不同: SAX解析原理 SAX解析范例 解析xml常用的有两种方式,DMO和SAX DOM和SAX的区别: DOM: 在内存中生成树桩结构 优点是可以支持增删改查各种操作 缺点在于,如果文档过大的时候,可能会产生内存溢出的风险 SAX: 基于事件驱动,边读边解析 优点:占用内存小 缺点,

JS解析XML文件和XML字符串

JS解析XML文件 <script type='text/javascript'>    loadXML = function(xmlFile){        var xmlDoc=null;        //判断浏览器的类型        //支持IE浏览器        if(!window.DOMParser && window.ActiveXObject){            var xmlDomVersions = ['MSXML.2.DOMDocument.

js解析xml字符串或xml文件,将其转换为xml对象

注:判断是否是ie浏览器和非ie浏览器的方法有多种,在此只介绍用例中的方法: 1.解析xml字符串,得到xml对象的方式: function createXml(str){ if(document.all){//IE浏览器     var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");        xmlDoc.async = false;     xmlDoc.loadXML(str);     return xmlDoc; } el

比较全的XML系列工具 可以轻松实现排版、转换和打印!

XML系列 -------------------------------------------------------------------------------- 1.Xsl Formatter-XML可视化工具 是根据W3C策划并推广的xsL式样开发的XML排版和打印转换软件,可以很好的显示和打印XML文档,并可将其转换为PDF文件. 功能: (1)实现XSL样式的排版功能,可将xml内容多版面显示,实现内容精准打印. (2)可以向PDF文件格式转换,在无Adobo Acrobat环

xml规范及xml解析

http://www.cnblogs.com/wang-meng/p/5374498.html 1,XML基础介绍 xml的概念: XML 指可扩展标记语言(EXtensible Markup Language),也是一种标记语言,很类似 HTML.           它的设计宗旨是传输数据,而非显示数据它;标签没有被预定义,需要自行定义标签. xml的作用: XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行.简单的说,我们在开发中使用XML主要有以

dom4j xml的生成与解析

这两天在一直写数据接口,涉及到数据xml文件的生成与解析,在此,简单地记录和总结一下. 其实,生成与解析xml文件主要还是运用java中的I/O文件的知识点. 现在大多数的人写xml文件的生成和解析都使用dom4j,它确实比传统的w3c的写法要简单方便的多.就像jQuery相比于js的优点显而易见一般. dom4j 简介: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常优秀的Java XML API,同时它也是一个开放源代码的软件,可以在So