欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

XML总结及Dom解析与SAX解析的对比。

程序员文章站 2022-05-22 16:42:23
...

XML:eXtensible Markup Language
它是万维网联盟定义的一种可扩展标志语言。可以很方便的表达多层结构的数据。并且可以多平台操作。
xml中有严格的语法:
 1.声明:<?xml  version="1.0"  encoding="UTF-8" standalone="no"?>
 (其中version表示的是XML的版本号,encoding 表示的字符集,UTF-8字符集是一个支持字符和文字的Unicode 标准,ISO-8859-1 字符集则是大多数西欧语言用到的所有字符。)
 2.XML文件有且仅有一个根标记,其他标记必须封装在根标记中,文件的标记必须形成树状结构。标签必须成对出现。
<student>
 <stu num="20141010">
  <name>cc</name>
  <sex>n</sex>
 </stu>
 <stu>
  <name>cc</name>
  <sex>n</sex>
 </stu>
</student>
 3.元素。一个XML只有一个根元素,根元素下面的所有元素叫子元素
 4.属性。每一个元素的属性不允许出现超过一次。所有的属性值必须位于单引号或双引号中。
 5.注释。注释可以出现在文档的任何位置。注释以 <!-- 开始,以 -->  结束。
 6.实体。 XML 规范预定义了五个实体。
       &lt;   ==== <
       &gt;   ==== >
       &quot; ==== ”
       &apos; ==== ‘
       &amp;  ==== &
  当一段文本中出现很多实体引用和字符引用时,会导致文本数据的读写困难。可以使用CDATA区段开始于 "<![CDATA["  结束于  "]]>" 。CDATA内部的所有东西都会被解析器忽略解析,不用检查它的格式。

XML处理模式:
一、 DOM 文档对象模式
 以树型结构访问XML文档。 一棵DOM树包含全部元素节点和文本节点。可以前后遍历树中的每一个节点。整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能。
二、 SAX 基于事件处理模式
    解析器向一个事件处理程序发送事件,比如元素开始和元素结束,而事件处理器则处理该信息。然后应用程序本身就能够处理该数据。原始的文档仍然保留完好无损。

比较DOM与SAX:
    DOM:DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问,所以处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多。
    优点:1.提供随机定义元素操作,来回移动指针
         2.将整个XML文件一次性加载到内存,形成虚的内存树
    缺点:1.如果XML文件较大,内存空间占用较大
         2.强制将较大的XML文件加载到内存中,有可能损害文件
         3.功能通用性

    SAX:不同于DOM,SAX是事件驱动型的XML解析方式。它顺序逐行读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。

 

 

 


 

  • XML总结及Dom解析与SAX解析的对比。
            
    
    博客分类: Java高级 xmldomsax 
  • 大小: 93.7 KB
  • XML总结及Dom解析与SAX解析的对比。
            
    
    博客分类: Java高级 xmldomsax 
  • 大小: 20.8 KB
相关标签: xml dom sax