XML应用于Web开发的许多方面,常用于简化数据的存储和共享,它的设计宗旨是传输数据,而非显示数据。下面简单介绍一下C#是如何对XML文件进行读取的。

1、首先,建立XML对象并关联XML文件

string xmlFileName = "student.xml";

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFileName);

2、获取到xml文件的根节点

//获取到xml文件的根节点
XmlElement nodeRoot = xmlDoc.DocumentElement;

3、创建新节点

//创建一个新节点
XmlElement nodeNew = xmlDoc.CreateElement("student");
//创建新节点的孩子节点
XmlElement nodeNum = xmlDoc.CreateElement("num");
XmlElement nodeName = xmlDoc.CreateElement("name");
XmlElement nodeAge = xmlDoc.CreateElement("age");
//把孩子节点与新节点建立父子关系
nodeNew.AppendChild(nodeNum);
nodeNew.AppendChild(nodeName);
nodeNew.AppendChild(nodeAge);
//创建节点文本,并关联节点
XmlText txtNum = xmlDoc.CreateTextNode("");
XmlText txtName = xmlDoc.CreateTextNode("张三");
XmlText txtAge = xmlDoc.CreateTextNode("");
nodeNum.AppendChild(txtNum);
nodeName.AppendChild(txtName);
nodeAge.AppendChild(txtAge);

4、添加新建的节点到文件

//添加新建的节点
nodeRoot.AppendChild(nodeNew);//添加到根节点
//nodeRoot.InsertBefore(nodeNew, nodeRoot.FirstChild);//添加到尾部

5、删除节点

if (nodeRoot.HasChildNodes)
{
nodeRoot.RemoveChild(nodeRoot.FirstChild);//删除首个节点
}

6、遍历节点

//遍历student.xml,查看指定节点的age值
XmlNodeList studentList = nodeRoot.SelectNodes("*");
foreach (XmlNode student in studentList)
{
if (student.FirstChild.InnerText.Equals(""))
{
XmlNodeList stuChidNodeList = student.SelectNodes("*");
foreach (XmlNode stuChileNode in stuChidNodeList)
{
if (stuChileNode.Name.Equals("age"))
{
Console.Write(stuChileNode.InnerText + " ");
}
}
Console.WriteLine();
break;
}
else
{
continue;
}
}

7、保存XML文件

//保存xml
xmlDoc.Save(xmlFileName);

附件:

  实验XML文件(student.xml)

<?xml version="1.0" encoding="utf-8"?>
<!--学生根节点-->
<students>
<student class="clss1">
<num>002</num>
<name>hello2</name>
<age>22</age>
</student>
<student class="clss2">
<num>003</num>
<name>hello3</name>
<age>88</age>
</student>
<student>
<num>004</num>
<name>faf</name>
<age>43</age>
</student>
<student>
<num>005</num>
<name>新人</name>
<age>22</age>
</student>
<student>
<num>006</num>
<name>新人</name>
<age>22</age>
</student>
<student>
<num>001</num>
<name>张三</name>
<age>22</age>
</student>
<student>
<num>001</num>
<name>张三</name>
<age>22</age>
</student>
</students>

student.xml

相关链接:

  XML基础教程:http://www.w3school.com.cn/xml/index.asp

XML文件操作(C#)的更多相关文章

  1. 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!

    我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...

  2. C# XML文件操作

    C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...

  3. XML文件操作类--创建XML文件

    这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...

  4. PHP对XML文件操作之属性与方法讲解

    DOMDocument相关的内容. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definit ...

  5. 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml

     数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...

  6. SpringBatch Sample (三)(XML文件操作)

    前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作.实例流程是 ...

  7. XML文件操作之dom4j

    能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的 所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/ dom4 ...

  8. C#XML文件操作随笔

    以为公司一直没有电源屏厂家协议解析为DevVars相关的软件,手写费时费力还容易出错,用了2天时间做了一个.txt协议文件筛选加并解析成xml文件的工具,总结一下用到的几个知识点 1.LINQ 是一个 ...

  9. Xml文件操作的其中一个使用方法:

    XmlNodeList students = doc.DocumentElement.ChildNodes;//Student节点集合 foreach (XmlNode stu in students ...

随机推荐

  1. gulp.js简单操作

    一.安装gulp 1.深入设置任务之前,需先安装gulp: $ npm install gulp -g 2.这会将gulp安装到全域环境下,让你可以存取gulp的CLI.接著,需要在本地端的专案进行安 ...

  2. c#调用C++DLL参数对应

    //c++:Byte(unsigned   char)     ----    c#:System.Byte         //c++:SHORT(short)              ----  ...

  3. b/s开发者的困境

    作为一个由内而外都贴着web开发者标签的开发人员,注定会被大多数c/s开发者和通讯接口开发者所鄙视. 在他们看来,从事web开发,肯定很少用到算法,设计模式,多线程等等.我只能说,就我个人的经历来说, ...

  4. linux后台进程管理工具supervisor

    Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启. su ...

  5. centos7优化mysql5.6配置

    一.环境参数 [root@hn mysql]# grep 'physical id' /proc/cpuinfo |sort -u physical id : 0 physical id : 1 [r ...

  6. java 线程数据同步

    java 线程数据同步 由买票实例 //java线程实例 //线程数据同步 //卖票问题 //避免重复卖票 //线程 class xc1 implements Runnable{ //定义为静态,可以 ...

  7. 14.高度最小的BST

    题目描述 对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树. 给定一个有序序列int[] vals,请返回创建的二叉查找树的高度. 返回高度的代码如下: imp ...

  8. Chap5: question: 29 - 31

    29. 数组中出现次数超过一半的数字. 方法a. 排序取中       O(nlogn). 方法b. partition 函数分割找中位数     >=O(n). 方法c. 设计数变量,扫描一遍 ...

  9. 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植

    为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的. ...

  10. saybyeto2015

    不知不觉一年又结束了,还是打算在最后一天写个总结. 今年换了工作,改变不可谓不多. 技术方面,看的书主要是 <Angularjs权威指南> <JavaScript设计模式与开发实践& ...