读写一般格式的XML文件,读写一般格式的X,写一般格式的XM,一般格式的XML,般格式的XML文 读写一般格式的XML文件----编程资料集中营--八角123--bajiao123.com
编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 进入问吧 | 
读写一般格式的XML文件,把数据都一次性存入数据库固然好,但是设想如果用户运行系统的计算机没有接入网络,即根本建立不了与数据库的连接,那该怎么办?总不能不要数据了任由其丢失吧。于是此时本地数据文件变的尤为重要,她们成为承载数据的媒介。不过选择存储数据的文件格式需要仔细周全的考虑,在存储和读取数据文件的过程中,不同的文件格式会给程序的性能带来不同的影响。www.chinaitpower,
您现在的位置: 编程资料,学习资料,c,c++,vc,vc++,java,jsp,j2ee,j2me,asp,php >> 文章中心 >> .NET 专区 >> NET 技术 >> 文章正文
【字体:
读写一般格式的XML文件   进入问吧

本站地址:http://www.bajiao123.com

作者:admin    文章来源:不详    点击数:    更新时间:2007-6-1    

读写一般格式的XML文件

  

把数据都一次性存入数据库固然好,但是设想如果用户运行系统的计算机没有接入网络,即根本建立不了与数据库的连接,那该怎么办?总不能不要数据了任由其丢失吧。于是此时本地数据文件变的尤为重要,她们成为承载数据的媒介。不过选择存储数据的文件格式需要仔细周全的考虑,在存储和读取数据文件的过程中,不同的文件格式会给程序的性能带来不同的影响。www.chinaitpower.comUxWl6RZ

XML(extensible markup language)文件作为与数据库联系最紧密的文件格式日益受到程序员的青睐,让我们看看它的优点:

www.chinaitpower.comUxWl6RZ

【1】                 当被用来描述数据库时,XML 拥有两项凌驾于专有格式(如Access .mdb 或dBase .dbf 格式)的优点:XML 是人类易读的,而且它是根据众所周知、开放式的标准所建立的。

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

【2】                 XML描述数据本身。由于数据显示与内容分开,XML定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。

www.chinaitpower.comUxWl6RZ

【3】                 XML具有较好的保值性。XML的保值性来自它的先驱之一——SGML语言。SGML是一套有着十几年历史的国际标准,它最初设计的一大目标就是要为文件提供50年以上的寿命。

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

而且从XML文件向数据库里导入数据并不是一件难事,所以选取XML文件做为数据的承载是非常好的选择。

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ


XML的读取实例)

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

XML遵循严格的语法要求,例如一个XML文件格式如下:

<ge name="电压表">                     图元的名称

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

    <gee>                       一个图素数据的开始

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <flagOrder>DrawLine</flagOrder>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <X>67</X>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <Y>23</Y>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <X1>37</X1>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <Y1>77</Y1>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <lw>1</lw>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <R>0</R>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <G>0</G>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <B>0</B>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

    </gee>                     一个图素数据的结束

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

    <gee>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <flagOrder>DrawRectangle</flagOrder>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <X>85</X>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <Y>76</Y>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <X1>30</X1>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <Y1>36</Y1>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <lw>1</lw>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <R>0</R>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <G>0</G>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <B>0</B>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

    </gee>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

    <gee>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <flagOrder>DrawEllipse</flagOrder>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <X>30</X>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <Y>7</Y>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <X1>70</X1>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <Y1>46</Y1>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <lw>1</lw>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <R>0</R>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <G>0</G>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

        <B>0</B>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

    </gee>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

</ge>

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ



(写这个实例XML文件的代码:)

           for(int i=0;i< GEList2D.Count;i++)//将某一个图元中的图素数据依次写入XML文件

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       GEObj = (CGE)GEList2D[i];

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       //对图元中的图素数据进行等比例缩小比例是4:1

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       GEObj.ptDrawStart.X = GEObj.ptDrawStart.X/4;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       GEObj.ptDrawStart.Y = GEObj.ptDrawStart.Y/4;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       GEObj.ptDrawEnd.X = GEObj.ptDrawEnd.X/4;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       GEObj.ptDrawEnd.Y = GEObj.ptDrawEnd.Y/4;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

 

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteStartElement("gee");

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("flagOrder",GEObj.flagOrder.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("X",GEObj.ptDrawStart.X.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("Y",GEObj.ptDrawStart.Y.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("X1",GEObj.ptDrawEnd.X.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("Y1",GEObj.ptDrawEnd.Y.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("lw",GEObj.GElw.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("R",GEObj.R.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("G",GEObj.R.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteElementString("B",GEObj.R.ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       writer.WriteEndElement();

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

               writer.WriteEndElement();

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

(写这个实例XML文件的代码:)

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

while(xtr.Read())

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

         {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              switch(xtr.NodeType)

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   case XmlNodeType.Element:

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       if(xtr.IsStartElement("ge"))

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                            this.GEName[i] = xtr.GetAttribute("name").ToString();//获取图元名称

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       if(xtr.IsStartElement("gee"))//开始读取一个图素

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       {}

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       if(xtr.IsStartElement("flagOrder"))//flagOrder

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                         switch(xtr.ReadElementString("flagOrder"))//根据不同的命令标志位建立不同的对象

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                         {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ


 

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                            case "DrawLine":

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 this.GEObj = new CLine();

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 this.GEObj.flagOrder = "DrawLine";//注意要在这里赋值

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 break;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                            case "DrawRectangle":

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 this.GEObj = new CRectangle();

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 this.GEObj.flagOrder = "DrawRectangle";

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 break;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                            case "DrawEllipse":

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 this.GEObj = new CEllipse();

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 this.GEObj.flagOrder = "DrawEllipse";

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 break;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                            case "DrawArc":

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 this.GEObj = new CArc();

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 this.GEObj.flagOrder = "DrawArc";

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                 break;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                       }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                                     ////////////////////////////////////////////////////////////////////////////

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.IsStartElement("X"))//ptDrawStart.X

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEObj.ptDrawStart.X = Int32.Parse(xtr.ReadElementString("X").ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.IsStartElement("Y"))//ptDrawStart.Y

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEObj.ptDrawStart.Y = Int32.Parse(xtr.ReadElementString("Y").ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.IsStartElement("X1"))//ptDrawEnd.X

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEObj.ptDrawEnd.X = Int32.Parse(xtr.ReadElementString("X1").ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.IsStartElement("Y1"))//ptDrawEnd.Y

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEObj.ptDrawEnd.Y = Int32.Parse(xtr.ReadElementString("Y1").ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.IsStartElement("lw"))//lw

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEObj.GElw = Int32.Parse(xtr.ReadElementString("lw").ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ


 

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.IsStartElement("R"))//R

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEObj.R = Int32.Parse(xtr.ReadElementString("R").ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.IsStartElement("G"))//G

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEObj.G = Int32.Parse(xtr.ReadElementString("G").ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.IsStartElement("B"))//B

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEObj.B = Int32.Parse(xtr.ReadElementString("B").ToString());

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              break;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

         }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

         case XmlNodeType.EndElement://读取该图素结束

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

         {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              if(xtr.Name.ToString().Equals("gee"))

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              {

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

                   this.GEList2D.Add(GEObj);//一个图素完成

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              break;

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

              }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

         }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

     }

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

     GEList1D.Add(GEList2D);//完成一个GEList2D,将之加入GEList1D,即读完一个图元文件

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

     xtr.Close();//关键必须关闭,否则独占文件就写不进去

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

     GEList2D = new ArrayList();//重新再为GEList2D分配一块区域

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ

}

www.chinaitpower.comUxWl6RZ

www.chinaitpower.comUxWl6RZ



进入问吧

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
高级搜索
编程资料集中营