1. 介绍

    本文中我将介绍在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;

    }

    }

    }

    }

    }

使用.NET读取XML文件相关推荐

  1. SQL Server中读取XML文件的简单做法

    SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...

  2. [转帖]C#执行SQL脚本,读取XML文件

    [转帖]C#执行SQL脚本,读取XML文件 需要添加如下引用: using System.IO; using System.Data.SqlClient; using System.Collectio ...

  3. java 存取xml数据_JAVA读取XML文件数据

    XML文档内容如下: title1 title2 title3 JAVA代码如下: package cn.mylucene; import java.io.File; import java.io.I ...

  4. C#中读取xml文件指定节点

    假设xml文件内容是 <?xml version="1.0" encoding="utf-8"?> <Workflow>   <A ...

  5. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  6. DOM4j读取XML文件(SAXReader)

    为什么80%的码农都做不了架构师?>>>    DOM4j读取XML文件(SAXReader) 一.一个很好的SAXReader读写xml文件的例题: 总结: Document do ...

  7. Tensorflow 读取XML文件内容并对图片等比例缩放

    根据XML文件中对图片标记的信息读取,并显示在图片中. xml 文件内容: <annotation><folder>OXIIIT</folder><filen ...

  8. linux下用js生成xml文件,使用JS读取XML文件的方法

    由于项目上需要解析xml,于是各种百度,然后自己总结了下各个主流浏览器解析xml的方法,只能是很浅显的知道他的用法,但是还没有深层次的研究. 不同的浏览器对xml的解析方式不同,根据目前主流浏览器大致 ...

  9. javascript读取xml文件读取节点数据的例子

    分享下用javascript读取xml文件读取节点数据方法. 读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> < ...

  10. SpringBatch 读取xml文件(StaxEventItemReader)用法(十三)

    文章目录 一.pom文件引入需要读取xml文件jar包 二.抽取读取xml文件公共reader 三.processor 四.配置读取xml文件job 五.执行job 前言:在一些业务场景中,可能需要读 ...

最新文章

  1. 三星emcp型号详解_Samsung eMCP(三星eMCP).pdf
  2. 生产制造类企业从企业邮箱切换到自建系统的方案
  3. Web安全之XSS漏洞
  4. 在sql2005中加数据库时出现无法打开物理文件
  5. pip 命令参数以及如何配置国内镜像源
  6. java导出word(带图片)
  7. 并不是所有SAP产品的UX,都得遵循Fiori UX风格
  8. 学习笔记(46):Python实战编程-protocol
  9. python中cursor操作数据库(转)
  10. python怎么分析数据结构_《利用Python进行数据分析》第五章-pandas的数据结构介绍...
  11. Linq学习之路(07) - 使用Linq进行参数化编程step by step
  12. Java函数、参数及传参方式详解
  13. jQuery选择器(二)(基本过滤器,内容过滤器,可见过滤器)
  14. KEIL MDK平台 S3C2440 编译链接、烧写调试
  15. 如何在Ubuntu 上安装SEP for Linux
  16. 软件测试行业到底有没有前景和出路?软件测试职业发展方向总结
  17. 数据库实验——简单数据库应用系统设计与实现
  18. matlab图片导出无失真库export_fig介绍(半透明效果)
  19. 【海思篇】【Hi3516DV300】六、音频输入篇
  20. 801-分享“入选腾讯犀牛鸟精英营”心得

热门文章

  1. 《Python Cookbook 3rd》笔记(5.12):测试文件是否存在
  2. python网络爬虫的方法有几种_Python网络爬虫过程中5种网页去重方法简要介绍
  3. 苹果面试8大难题及答案
  4. 11 步教你选择最稳定的 MySQL 版本
  5. 开启 JM 的 trace 功能
  6. SpringBoot 之环境搭建
  7. navicat 导出的sql文件,再导入,运行SQL文件成功,数据库中却没有表
  8. Lisenter笔记
  9. shell编程基础(七): 处理文件命令sed与awk
  10. Redis进阶实践之二十 Redis的配置文件使用详解