使用.NET读取XML文件

  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;

    }

    }

    }

    }

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为出品】物联网全栈开发实战营第2期来啦!送海思开发板

物联网一直在改变我们生活的方方面面。可穿戴设备有助于监控我们的偏好、习惯和健康状况。智能家居设备可提高家居的舒适度、安全性和便利性。城市利用连接的数字设备收集的海量数据(数十亿个)来改善城市规划。制造商使用工业物联网设备来优化工厂车间的操作。据MarketsandMark…

2017年12月计算机一级c,2017年12月计算机二级C语言考试操作题冲刺卷(2)

三. 程序设计题3 [简答题]请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为&…

6. Nginx + PHP + FastGCI安装

LNAMP Linux Nginx Apache Mysql PHP Nginx PHP(fast CGI) 可以理解为一个php加速的一个接口 Php-fpm 可以实现fastcgi协议需要的进程池,php-fpm实现的fastcgi进程叫php-cgi,所以php-fmp其实是他自身的fastcgi 或 php-cgi进程管理…

培训游戏(34个)

培训游戏(34个) 目 录 1. 造房子 2. 摔鸡蛋 3. 结网托物 4. 盲人移物 5. 搭纸牌 6. 九点游戏 7. 剪纸圈 8. Trust Fall 9. 商店打烊 10. 海上救生 11. Win As Much As Possible 12. 沙漠幸存者 13. 看FLY 14. 找方块 15. 中国人-美国人 16. 画画 17. 猜图形 …

给楠哥准备的入门单片机

---- 少儿编程前几天,珠海的三哥的老婆微信问我「我想给wending报名这个少儿编程课程,你帮我看看怎么样?」我看了下,除了价格还可以,其他都不怎么样,因为报名了这个课程,大家都知道你们家挺有钱…

计算机老师教师节祝福语,送给老师教师节祝福语

1、能使艰难之事变得容易的人是教育者。2、老师的教诲催我风雨兼程,我的祝福伴您昼夜耕耘。祝你教师节快乐!3、您的辛劳是我们的动力,我们的成功是您的骄傲,然而我们会为您自豪!!4、老师就像航海的指标&…

JavaScript初阶(二)

编程形式的区别 编程语言按形式上分为两类,第一是面向过程,第二是面向对象。 面向过程:每一步我们该怎么做,如C语言 面向对象:包含面向过程,但更重要的是用什么方法处理,结构化更强。 显示类型转…

应届生昆山offer和上海户口offer要如何选择?

这两天还在苏州,没有感受苏州的什么好地方,天气有点微凉,有秋天的味道,同行的何总是一个很闷的人,我总想让他跟我说说故事,每次他都说「我是一个没有故事的男人」,是的,一个从毕业就…

html5--3.7 input元素(6)

html5--3.7 input元素(6) 学习要点 input元素及其属性input元素 用来设置表单中的内容项,比如输入内容的文本框,按钮等不仅可以布置在表单中,也可以在表单之外的元素使用input元素的属性 type属性:指定输入内容的类型,…

计算机or笔记本,笔记本or台式机?大学生第一个烦恼被它解决了

原标题:笔记本or台式机?大学生第一个烦恼被它解决了台式电脑还是笔记本?许多大学生在选择第一台大学电脑的时候都会面临这个问题。初秋的风带着点点凉意悄然走进了大学校园,开学季来临,又一批莘莘学子即将满怀青春的梦…

把编译时间加入到目标文件

原文:https://www.cnblogs.com/pingwen/p/8183728.html1、问题背景:如何保证发布出去的bin文件是最终测试通过的版本?一般的来讲,代码到了测试后期,master分支就不会频繁的提交了,并且提交也会更加谨慎。但…

大数据基础篇(一):联机分析处理(OLAP) 与 联机事务处理(OLTP)

联机事务处理(OLTP) OLTP也称实时系统(Real Time System),支持事务快速响应和大并发,这类系统典型的有ATM机(Automated Teller Machine)系统、自动售票系统等,但有些银行转账并不是实时到账的。OLTP反映企业当前的运行状态,完成企…

[JavaScript] 正则表达式

简单模式• 创建: 一个文本格式或正则表达式构造函数 文本格式: /pattern/flags 正则表达式构造函数: new RegExp("pattern"[,"flags"]); • 参数说明: pattern -- 一个正则表达式文本 flags -- 如果存…

1核2G云服务器 标准型S4 S5,腾讯云服务器标准型S4和S5配置性能参数区别及选择攻略...

腾讯云服务器标准型S4和标准型S5实例有什么区别?标准型S5相对于S4是新一代云服务器规格,S5实例CPU采用2.5GHz主频至强Cascade Lake,S4实例处理器采用2.4GHz主频至强Skylake,腾讯云S4/S5均为标准型服务器,具有均衡的计算…

单精度浮点数与十六进制转换

#include <stdio.h>/*--------------------------- 十六进制到浮点数 ---------------------------*/ float Hex_To_Decimal(unsigned char *Byte,int num) { #if 0char cByte[4];//方法一for (int i0;i<num;i){cByte[i] Byte[i];}float pfValue*(float*)&cByte;…

zipline-benchmarks.py文件改写

改写原因&#xff1a;在这个模块中的 get_benchmark_returns() 方法回去谷歌财经下载对应SPY&#xff08;类似于上证指数&#xff09;的数据&#xff0c;但是Google上下载的数据在最后写入Io操作的时候会报一个恶心的编码的错误&#xff0c;很烦人&#xff0c;时好时坏的那种&a…

css普通压缩不去,使用css-loader的minimize压缩css不起作用?

{ test: /\.(scss|css)$/, use: [!env.production? style-loader: MiniCssExtractPlugin.loader,{ loader: css-loader, options: { modules: true, minimize: true //设置css压缩}},{ loader:…

华为3COM交换机PVLAN配置使用说明

1.  PVLAN的引入   <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /><?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" />在实际应用中有这样一个需求&#xff0c;组网图如上图所示。    …

springboot启动太慢优化

需求缘起&#xff1a;有人在【springboot】微信公众号问&#xff1a;springboot启动慢的问题何时有个分享就好了&#xff0c;谢谢。粉丝的问题还是要认真的回答的。 我们先看看本节的大纲&#xff1a; &#xff08;1&#xff09;组件自动扫描带来的问题&#xff08;SpringBootA…

绑定字符串

Bind("BARAS","{0:F0}")CutString1(DataBinder.Eval(Container.DataItem,"title").ToString(),12)((bool)DataBinder.Eval(Container.DataItem,"IfShow"))?"Yes":"No" 使用 Eval 方法 Eval 方法可计算数据绑定控…