当前位置:首页 > 网络编程 > 软件语言 > .NET > 使用.NET读取XML文件

使用.NET读取XML文件

点击次数:38 次 发布日期:2008-11-06 08:05:28 作者:源代码网
源代码网推荐
广告载入中

源代码网整理以下介绍

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

源代码网整理以下概论

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

源代码网整理以下 

源代码网整理以下 

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

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

源代码网整理以下代码列表 

源代码网整理以下 

源代码网整理以下程序代码:

软件开发网 www.mscto.com

源代码网整理以下private void btnLoad_Click(object sender, System.EventArgs e)

源代码网整理以下  {

源代码网整理以下   XmlTextReader reader = new XmlTextReader(

源代码网整理以下    Server.MapPath("mycompany.xml"));

软件开发网 www.mscto.com

源代码网整理以下   

源代码网整理以下   reader.WhitespaceHandling = WhitespaceHandling.None;

源代码网整理以下   XmlDocument xmlDoc = new XmlDocument();

源代码网整理以下   //将文件加载到XmlDocument对象中

源代码网整理以下   xmlDoc.Load(reader); 软件开发网 www.mscto.com

源代码网整理以下   //关闭连接

源代码网整理以下   reader.Close();

源代码网整理以下   //向listbox中添加代表文档的元素

源代码网整理以下   lbNodes.Items.Add("XML Document");

软件开发网 www.mscto.com

源代码网整理以下   //查找根节点,并将它及它的子节点一同添加到listbox中

源代码网整理以下   XmlNode xnod = xmlDoc.DocumentElement;

软件开发网 www.mscto.com

源代码网整理以下   AddWithChildren(xnod,1);

源代码网整理以下  }

源代码网整理以下  

源代码网整理以下  private void AddWithChildren(XmlNode xnod, Int32 intLevel)

源代码网整理以下  {

源代码网整理以下   //将节点及它的子节点一同添加到listbox中

源代码网整理以下   //intLevel 控制缩进的深度

软件开发网 www.mscto.com

源代码网整理以下   XmlNode xnodWorking;

源代码网整理以下   String strIndent = new string(’ ’,2 * intLevel);

源代码网整理以下   //如果节点有值,读取它的值

源代码网整理以下   string strValue = (string) xnod.Value;

源代码网整理以下   if(strValue != null)

源代码网整理以下   {

源代码网整理以下    strValue = " : " + strValue;

源代码网整理以下   }

软件开发网 www.mscto.com

源代码网整理以下   //将节点的详细信息添加到ListBox中

源代码网整理以下   lbNodes.Items.Add(strIndent + xnod.Name + strValue);

源代码网整理以下   //如果是元素节点,获取它的属性

源代码网整理以下   if (xnod.NodeType == XmlNodeType.Element)

软件开发网 www.mscto.com

源代码网整理以下   {

源代码网整理以下    XmlNamedNodeMap mapAttributes = xnod.Attributes;

源代码网整理以下    //将节点属性添加到ListBox中

源代码网整理以下    foreach(XmlNode xnodAttribute in mapAttributes)

源代码网整理以下    {

源代码网整理以下     lbNodes.Items.Add(strIndent + " " + xnodAttribute.Name + 

源代码网整理以下      " : " + xnodAttribute.Value);

源代码网整理以下    }

源代码网整理以下    //如果还有子节点,就递归地调用这个程序

源代码网整理以下    if(xnod.HasChildNodes)

软件开发网 www.mscto.com

源代码网整理以下    {

源代码网整理以下     xnodWorking = xnod.FirstChild;

源代码网整理以下     while (xnodWorking != null)

源代码网整理以下     {

源代码网整理以下      AddWithChildren(xnodWorking, intLevel +1);

源代码网整理以下      xnodWorking = xnodWorking.NextSibling;

源代码网整理以下     }

源代码网整理以下    }

源代码网整理以下   }

源代码网整理以下  }

源代码网整理以下 }
 


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华