珍珠翡翠白玉汤

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
 

1.xml基本概念 

<?xml version='1.0' encoding="GB2312"?>         //XML文档声明,放在xml文档的第一行    

<!-- This file represents a fragment of a book store inventory database -->  //xml注释

<bookstore>                     //根元素,即紧接着文档声明后建立的第一个元素

 <book genre="autobiography" publicationdate="1991" ISBN="1-861003-11-0"> //根元素的子元素

      <title>The Autobiography of Benjamin Franklin</title>

    <author>

      <first-name>Benjamin</first-name>      //成对出现的标签(tag)表示一个元素(element)

      <last-name>Franklin</last-name>

    </author>

    <price>8.99</price>

 </book>

 <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2"> //每个元素可以有多个属性

    <title>The Confidence Man</title>                    //genrebook元素的属性

    <author>                                 //genre属性名novel属性值

      <first-name>Herman</first-name>        //first-name元素的内容(content)Herman

      <last-name>Melville</last-name>        //元素的内容可以称为数据、值

    </author>

    <price>11.99</price>     //book元素包含了titleauthorprice三个子元素

 </book>               //book元素还有genrepublicationdateISBN三个属性

</bookstore>

 

一个元素(element)可以有属性(attribute)和内容(content)也可以没有属性或内容

一个元素可以有子元素,也可以没有子元素

 

 

2.xml访问模型

xml文件的访问模型有2种:DOM(文档对象模型) 和流模型

1)DOM模型:

优点:允许编辑和更新xml文件,可以随机访问文档中的数据,可以使用XPath查询(类似于SQL之于数据库)

缺点:需要一次性加载整个文档到内存中,对于较大的文档,会造成资源浪费

 

2)流模型:

流模型访问xml文档,使用流的概念,每次迭代xml文档中的一个节点,适于处理较大的文档,消耗内存较少。

缺点:它是只读的,仅向前的,不能在文档中执行向后导航操作。

流模型有2种变体:

"推"模型:即使SAX,是一种事件驱动模型。它每发现一个节点就引发一个事件,程序员必须编写事件的处理程序

       不灵活,也很麻烦

"拉"模型:就是在遍历文档时把感兴趣的文档部分从读取器中拉出,不引发事件,效率更高

         .net使用的是基于"拉"模型的实现方案

 

3).net既支持流模型 - XmlTextReader类和XmlTextWriter类等

      又支持DOM模型- XmlNode类等

posted on 2007-01-20 16:01  zqf620  阅读(551)  评论(0编辑  收藏  举报