使用.NET读取XML文件
- 介绍
本文中我将介绍在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文件相关推荐
- SQL Server中读取XML文件的简单做法
SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...
- [转帖]C#执行SQL脚本,读取XML文件
[转帖]C#执行SQL脚本,读取XML文件 需要添加如下引用: using System.IO; using System.Data.SqlClient; using System.Collectio ...
- java 存取xml数据_JAVA读取XML文件数据
XML文档内容如下: title1 title2 title3 JAVA代码如下: package cn.mylucene; import java.io.File; import java.io.I ...
- C#中读取xml文件指定节点
假设xml文件内容是 <?xml version="1.0" encoding="utf-8"?> <Workflow> <A ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
- DOM4j读取XML文件(SAXReader)
为什么80%的码农都做不了架构师?>>> DOM4j读取XML文件(SAXReader) 一.一个很好的SAXReader读写xml文件的例题: 总结: Document do ...
- Tensorflow 读取XML文件内容并对图片等比例缩放
根据XML文件中对图片标记的信息读取,并显示在图片中. xml 文件内容: <annotation><folder>OXIIIT</folder><filen ...
- linux下用js生成xml文件,使用JS读取XML文件的方法
由于项目上需要解析xml,于是各种百度,然后自己总结了下各个主流浏览器解析xml的方法,只能是很浅显的知道他的用法,但是还没有深层次的研究. 不同的浏览器对xml的解析方式不同,根据目前主流浏览器大致 ...
- javascript读取xml文件读取节点数据的例子
分享下用javascript读取xml文件读取节点数据方法. 读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> < ...
- SpringBatch 读取xml文件(StaxEventItemReader)用法(十三)
文章目录 一.pom文件引入需要读取xml文件jar包 二.抽取读取xml文件公共reader 三.processor 四.配置读取xml文件job 五.执行job 前言:在一些业务场景中,可能需要读 ...
最新文章
- 三星emcp型号详解_Samsung eMCP(三星eMCP).pdf
- 生产制造类企业从企业邮箱切换到自建系统的方案
- Web安全之XSS漏洞
- 在sql2005中加数据库时出现无法打开物理文件
- pip 命令参数以及如何配置国内镜像源
- java导出word(带图片)
- 并不是所有SAP产品的UX,都得遵循Fiori UX风格
- 学习笔记(46):Python实战编程-protocol
- python中cursor操作数据库(转)
- python怎么分析数据结构_《利用Python进行数据分析》第五章-pandas的数据结构介绍...
- Linq学习之路(07) - 使用Linq进行参数化编程step by step
- Java函数、参数及传参方式详解
- jQuery选择器(二)(基本过滤器,内容过滤器,可见过滤器)
- KEIL MDK平台 S3C2440 编译链接、烧写调试
- 如何在Ubuntu 上安装SEP for Linux
- 软件测试行业到底有没有前景和出路?软件测试职业发展方向总结
- 数据库实验——简单数据库应用系统设计与实现
- matlab图片导出无失真库export_fig介绍(半透明效果)
- 【海思篇】【Hi3516DV300】六、音频输入篇
- 801-分享“入选腾讯犀牛鸟精英营”心得