- 浏览: 2162494 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
本文将以一个非常简单的例子来说明如何使用C#访问一个XML文件并且读取其中的信息。例子本身并无任何实际意义,它只是简单的介绍了如何调用微软的XML标准以及如何运用到实际当中去。希望能够对初次接触C#或者未尝试过通过C#读取XML文件的读者有所启发。本文旨在抛砖引玉,希望能与更多的朋友交流和分享经验。
制作过程
1.
运行Visual Studio.NET,新建Visual C#.NET工程,这里取名为ReadXML。
2.
在解决方案资源管理器中,将Form1.cs改名为frmAuthor.cs(此项为可选)。
3.
将Form1的Name属性改为frmAuthor,Text属性改为Read XML Document,Font改为Verdana,9pt(此项为可选)。
4.
在窗体上添加四个控件:Lable控件(Name: lbl、Text: Author Name:)、ComboBox控件(Name: cboAuthor、DropDownStyle: DropDownList)、RichTextBox控件(Name: richtxt、Text:空)、Button控件(Name: btnShow、Text: Show Author’s Info)。调整各控件的位置,此时用户界面类似于下图:
5.
双击窗体,则IDE自动切换到代码编辑窗口,并自动添加了窗体载入方法frmAuthor_Load。在该方法内加入如下代码:
this.cboAuthor.Items.Add("张爱铃"); this.cboAuthor.Items.Add("福楼拜"); this.cboAuthor.Items.Add("马克·吐温");以上代码添加几条作者名字到ComboBox中去,这些作者的信息在XML文档中有对应项。
OK,到这里为止,我们所要做的一些程序初始化工作就已经完毕了。下面让我们来看看本例程所要展示的主要知识点。
在编写访问代码之前,让我们来看看XML文档的内容,如下:
<?xml version="1.0" encoding="gb2312" ?> <Author> <Zhang> <Intro>省略</Intro> </Zhang> <Fu> <Intro>省略</Intro> </Fu> <Mark> <Intro>省略</Intro> </Mark> </Author>
这是一个简单的XML文档,每个作者对应一条信息(Intro),共三条信息。我们要做的事情就是通过程序、按照XML文档的结构读取作者的简介,也就是Intro部分的内容。OK,下面就让我们来实现具体的代码。
1.
将以上XML文档(取名为Author.xml)放置在工程的根目录下(事实上放在任何地方均可以,但为了便于管理,这里就直接放在工程根目录下)。然后回到VS.NET,在frmAuthor.cs代码中头部添加以下代码:
using System.Xml;用于引用微软System.Xml命名空间。
2.
回到frmAuthor.cs[设计]页,双击Show Author’s Info按钮,则IDE自动添加btnShow_Click事件在frmAuthor.cs里。在btnShow_Click事件中,填写以下代码:
try { //Declaration string strAuthor = this.cboAuthor.Text.Trim(); string strXMLAuthor = ""; string strInfo; XmlDocument doc = new XmlDocument(); System.Xml.XPath.XPathNavigator nav; // = new System.Xml.XPath.XPathNavigator(); System.Xml.XPath.XPathNodeIterator iterator; // = new System.Xml.XPath.XPathNodeIterator(); //Validation if( strAuthor == "") { throw new ArgumentException("Author","You must select a author name!"); } //Load XML document doc.Load("..\\..\\Author.xml"); //Set nav object nav = ((System.Xml.XPath.IXPathNavigable)(doc)).CreateNavigator(); //Justification if( strAuthor == "张爱铃" ) strXMLAuthor = "Zhang"; else if( strAuthor == "福楼拜" ) strXMLAuthor = "Fu"; else if( strAuthor == "马克·吐温" ) strXMLAuthor = "Mark"; //Set node iterator iterator = nav.Select("Author/" + strXMLAuthor); //Move to the desired node iterator.MoveNext(); //Get the value of current node strInfo = iterator.Current.Value; //Display author's information this.richtxt.Text = strInfo; } catch(System.Exception err) { //Display Error MessageBox.Show(err.Message, "ERROR!"); }
3.
主要代码我们已经填写完毕。下面使用菜单“生成”>“生成解决方案”命令后,按F5即可运行测试程序是否正确了。
解释部分
1.
System.Xml命名空间
System.Xml 命名空间为处理 XML 提供基于标准的支持。支持的标准包括:
•
XML 1.0 - http://www.w3.org/TR/1998/REC-xml-19980210 - 包括 DTD 支持。
•
XML 命名空间 - http://www.w3.org/TR/REC-xml-names/ - 流级别和 DOM。
•
XSD 架构 - http://www.w3.org/2001/XMLSchema
•
XPath 表达式 - http://www.w3.org/TR/xpath
•
XSLT 转换 - http://www.w3.org/TR/xslt
•
DOM 级别 1 核心 - http://www.w3.org/TR/REC-DOM-Level-1/
•
DOM 级别 2 核心 - http://www.w3.org/TR/DOM-Level-2/
2.
XPathNavigator类
XPathNavigator 是基于 XPath 数据模型,并且提供了在任何数据存储区上实现 XPath 查询所需的方法。
XPathNavigator 提供对数据的只读随机访问。当前节点是指导航器定位在其上的节点。使用任何移动方法都可推进导航器并且属性反映当前节点的值。
3.
XPathNodeIterator 类
XPathNodeIterator 类是指在一组选定的节点上提供迭代程序。Iteractor一词源于Iterate(反复说, 重申, 重述),它会在选定的节点上进行迭代搜索,在我们的例子中,它会寻找符合条件的节点,并获得该节点上的值。
关于System.Xml命名空间及其子命名空间,可以查阅2002年后的MSDN Library,其中的“命名空间层次结构”一节中,我们可以清楚地看到各System.Xml命名空间的层次结构。
以上通过一个非常简单的例子来向大家展示如何利用C#及System.Xml命名空间直接访问一个XML文档。当然,本例程中的代码只是一种实现方法,代码也未经过整理和优化,这里只是希望能够通过这个例程给大家展示Visual C#的一个知识点而已
发表评论
-
where T:new() 是什么意思
2014-04-18 09:26 1450where T:new() 是什么意思 经常看到方法后面 ... -
为何在wpf中textbox的值有时不会实时的变化
2013-11-03 19:31 1397TextBox绑定view model 中的一个属性,如果T ... -
好久没写blog了
2012-05-21 18:43 2好久没写blog了 -
使用MySQL命令行修改密码
2011-07-27 20:37 1050使用MySQL命令行修改密码 下面为您额极少的My ... -
更改lnmp安装后的MySQL密码方法
2011-07-27 20:36 1421更改lnmp安装后的MySQL密码方法 2011-07- ... -
mysql-bin.000001文件的来源及处理方法[转]
2011-07-27 20:31 1313mysql-bin.000001文件的来 ... -
lnmp vps下mysql备份
2011-07-27 20:31 1033mysql-bin.000001文件的来 ... -
N点虚拟主机管理系统安装图解
2011-07-25 00:13 1831<script type="text/j ... -
CentOS 6.0正式版终于发布
2011-07-24 10:29 1595CentOS 6.0新在什么地方 ... -
关系数据库还是NoSQL数据库
2011-07-22 16:35 939关系数据库还是NoSQL数据库 作者 孙立 发布于 2 ... -
关系数据库还是NoSQL数据库
2011-07-22 16:31 1074关系数据库还是NoSQL数据库 作者 孙立 发布于 2 ... -
NoSQL开篇——为什么要使用NoSQL
2011-07-22 16:26 1039NoSQL开篇——为什么要使用NoSQL 作者 孙立 发布 ... -
HubbleDotNet开源全文搜索数据库项目--技术详解
2011-07-21 17:49 1168HubbleDotNet开源全文搜索数据库项目--技术 ... -
细说 Form (表单)
2011-07-21 12:27 1246细说 Form (表单) Form(表单)对于每 ... -
ASP.NET(C#)常用数据加密和解密方法汇总
2011-07-21 12:26 1357应同事所邀把ASP.NET(C#)常用数据加密和解密方法 ... -
ds
2011-07-21 09:44 1002blog%5Borigin%5D=0&blog%5Bc ... -
ds
2011-07-21 09:42 960请输入文章内容dsafas -
test
2011-07-21 09:31 901testestestestestestestestestest ... -
判断两个数组中是否存在相同的数字
2010-06-17 09:03 2161判断两个数组中是否存在相同的数字 给定两个排好序的数 ... -
中国联通短信如何 对接
2010-04-04 10:23 2037目前,联通短信定购流程如下: 第一步 用户上行 用户按照要求书 ...
相关推荐
- `XDocument` 和 `XmlDocument` 都提供了一种将整个XML文档加载到内存中的方式,然后可以方便地通过LINQ查询语法操作XML数据。适合较小的XML文件。 - `XDocument` 更为推荐,因为它提供了更简洁的API,而 `Xml...
`XmlDocument` 提供了加载和操作XML文档的方法。以下是一个简单的读取示例: ```csharp using System.Xml; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("employees.xml"); // 加载XML文件 // ...
1. **System.Xml命名空间**:C#中处理XML的主要工具位于System.Xml命名空间下,包括XmlDocument、XmlNode、XmlElement等类,它们提供了读取、写入和操作XML文档的功能。 2. **XmlDocument类**:这个类用于加载XML...
在C#编程中,处理XML数据是常见的任务之一。XML(eXtensible Markup Language)是一种用于存储和传输结构化数据的标记语言,它在软件开发中广泛应用...在实际开发中,可以根据需求选择合适的方法来解析和操作XML文档。
综上所述,"C# 读取XML文件并写入Excel表格"这一主题涵盖了XML解析和Excel操作的关键技术,对于数据处理和报告生成等场景非常实用。在实际应用中,开发者可以根据具体需求调整代码逻辑,以满足各种复杂的业务需求。
以上就是使用C#读取XML文件的几种常见方法。选择哪种取决于你的具体需求,如性能、易用性、数据处理复杂度以及是否需要保持DOM。在实际开发中,可以根据项目需求灵活运用这些技术。请根据你的实际情况调整代码中的...
本文将深入探讨如何使用C#语言读取XML文件,包括直接操作XML节点的方法以及通过序列化将XML文件转换为对象的方式。 ### 直接读取XML节点 #### 1. 使用`XmlDocument`类 `XmlDocument`是.NET Framework提供的一个类...
在处理XML文档时,LINQ to XML(也称为LinqXML)是一个非常实用的API,它提供了面向对象的方式来创建、操作和读取XML文档。本文将详细介绍如何使用C#的LinqXML技术对XML文件进行读取。 首先,我们需要引入必要的...
其中,`XmlDocument`类是核心,用于加载和操作XML文档。例如,以下代码展示了如何读取一个XML文件: ```csharp using System.Xml; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("path_to_your_xml_...
本教程将深入探讨如何使用C#读取XML文件并将其内容展示在DataGrid组件上,这是一个常见且实用的功能,尤其适用于数据展示和管理。 首先,我们需要引入必要的命名空间,包括`System.Xml`用于处理XML文件,以及`...
在.NET框架中,C#提供了丰富的类库来处理XML文件,使得读取、解析和操作XML文档变得简单易行。 1. **XML命名空间和相关类** - `System.Xml`命名空间是处理XML的核心,包含了大量用于读写、验证、序列化和反序列化...
C# 语言可以轻松地操作 XML 文件,读取 XML 文件的内容并将其存储到数据库中。同时,C# 也可以对 XML 文件进行增删改操作。 读取 XML 文件 要读取 XML 文件,首先需要将 XML 文件加载到 XmlDocument 对象中。然后...
总结,C#读取XML配置文件主要涉及加载文件、查询节点、处理查询结果以及异常处理。根据项目的规模和需求,可以选择不同的方法来实现这一功能。对于简单需求,可以直接使用`XmlDocument`或`XDocument`;对于更复杂的...
本篇将深入探讨如何使用C#进行XML文件的操作,包括读取、写入、解析、修改和创建XML文档。 首先,我们需要引入System.Xml命名空间,它包含了处理XML文档所需的所有类和方法。例如: ```csharp using System.Xml; `...
本篇文章将深入探讨如何在C#中操作XML文件,尤其是读取XML节点和属性。 首先,我们来了解基本的XML结构。XML文档由一系列元素组成,每个元素可以有零个或多个子元素,以及属性。元素通过开始标签(如 `<element>`)...
在标题中提到的“C#读取XML文件”是本文档的中心内容。描述部分重复了标题,没有提供额外的信息。标签部分为空,没有提供辅助分类或关键词。从给定的部分内容中,可以总结出一系列关于使用C#语言读取XML文件的技术点...
本文将深入探讨如何使用C#进行XML文件的操作,包括读取、写入、修改和解析XML文档。 首先,我们需要了解C#中的System.Xml命名空间,它提供了处理XML文档的各种类。最常用的是XmlDocument和XmlNode类,它们允许我们...
在C#编程中,XML(eXtensible ...以上就是关于“C#读取XML文件模型”的详细讲解,包括XML的基本概念、C#中读取XML的多种方法、XPath查询、Linq to XML以及XML序列化和反序列化。希望对你在处理XML文件时有所帮助。
以上就是关于“C#读取txt文件”和“C#读取xml文件”的详细知识,以及如何在WPF应用中结合MVVM模式进行操作。希望这对你理解C#文件读取和MVVM模式有所帮助。在实际项目中,还需要考虑异常处理、资源管理等其他因素,...
本主题将深入探讨如何使用C#操作XML文件,通过以下知识点来理解并实现这一过程。 1. **XML基础知识**: - XML的结构:XML文件由元素、属性、文本内容和命名空间等构成,遵循严格的规则。 - XML文档对象模型(DOM...