`
不打伞的蘑菇
  • 浏览: 14975 次
社区版块
存档分类
最新评论

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

阅读更多

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的顺序访问。

 

 

 


 

  • 大小: 93.7 KB
  • 大小: 20.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics