我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > net专区 > 使用.NET读取XML文件
热门文章排行
热门文章排行 检查email地址格式的代码(01-11)
PHP操作文件问答(01-11)
PHP安装攻略:安装并配置PHP(10-23)
PHP的十个高级技巧 4(10-23)
关于APE的介绍、播放及制作(03-22)
精采文章排行
精采文章排行 ASP.NET与MySQL数据库简明图示入门教(11-16)
ASP.NET与MySQL数据库简明图示入门教(11-16)
ASP.NET 链接数据库基础(11-16)
webconfig的设置节点说明(11-16)
部署ASP.NET的三大技术(上)(11-16)
技术专题推荐
网管论坛交流
 

使用.NET读取XML文件 

作者:   来源:Linux 宝库   点击:   日期:2006-11-21


-->

    介绍


    本文中我将介绍在ASP.NET应用程序中如何读取XML文件,这是一个十分有用的技巧。使用这个技巧,我们能够定制我们的应用程序的配置文件,也可以读取那些保存在XML文件中的数据。


    概论


    下面的代码将使用XmlTextReader对象将磁盘文件中的数据读取到XmlDocument对象中。XmlTextReader对象在功能上和StreamReader及BinaryReader对象十分相似,只不过它是专为读取XML文件而特别设计的。除此以外,XmlTextReader对象还有其他一些与XMl相关的特性。例如,代码中使用到的WhitespaceHandling属性告诉应用程序不要为XML文件中多余的空格建立节点。


    下面的代码使用XmlTextReader对象的DocumentElement属性来查找XML文档的树状表达形式的根节点。之后,递归地调用AddWithChildren方法将将节点及它的子节点一同添加到listbox中。


    下面的代码还包含了属性的处理。属性节点并不包含在一个XmlDocument对象的节点的子节点集合中。因而,你只能使用XmlNode对象的Attributes属性获得属性节点集合。获取了属性节点集合后,代码使用XmlNamedNodeMap对象来保存这个集合。这个对象能够保存任何类型的XmlNode对象的任何集合。


    代码列表
private void btnLoad_Click(object sender, System.EventArgs e)


    {


      XmlTextReader reader = new XmlTextReader(


        Server.MapPath("mycompany.xml"));


 


      reader.WhitespaceHandling = WhitespaceHandling.None;


      XmlDocument xmlDoc = new XmlDocument();


      //将文件加载到XmlDocument对象中


      xmlDoc.Load(reader);


      //关闭连接


      reader.Close();


      //向listbox中添加代表文档的元素


      lbNodes.Items.Add("XML Document");


      //查找根节点,并将它及它的子节点一同添加到listbox中


      XmlNode xnod = xmlDoc.DocumentElement;


      AddWithChildren(xnod,1);


    }


 


    private void AddWithChildren(XmlNode xnod, Int32 intLevel)


    {


      //将节点及它的子节点一同添加到listbox中


      //intLevel 控制缩进的深度


      XmlNode xnodWorking;


      String strIndent = new string(' ',2 * intLevel);


      //如果节点有值,读取它的值


      string strValue = (string) xnod.Value;


      if(strValue != null)


      {


        strValue = " : " + strValue;


      }


      //将节点的详细信息添加到ListBox中


      lbNodes.Items.Add(strIndent + xnod.Name + strValue);


      //如果是元素节点,获取它的属性


      if (xnod.NodeType == XmlNodeType.Element)


      {


        XmlNamedNodeMap mapAttributes = xnod.Attributes;


        //将节点属性添加到ListBox中


        foreach(XmlNode xnodAttribute in mapAttributes)


        {


          lbNodes.Items.Add(strIndent + " " + xnodAttribute.Name +


            " : " + xnodAttribute.Value);


        }


        //如果还有子节点,就递归地调用这个程序


        if(xnod.HasChildNodes)


        {


          xnodWorking = xnod.FirstChild;


          while (xnodWorking != null)


          {


            AddWithChildren(xnodWorking, intLevel +1);


            xnodWorking = xnodWorking.NextSibling;


          }


        }


      }


    }


  }







文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·给你的FileSystemObject对象加把锁 ·在 Web 页上使用条件数值格式
·连接数据库查询手册(不仅仅适用于asp) ·警惕"给你的FileSystemObject对象加把锁"
·用ASP做全文检索 ·如何把ASP编写成DLL

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。