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. 推荐csdn里的几篇activiti基础入门及提高的博客

    昨天有个网友加qq询问我有没有非maven搭建的activiti项目的demo,因为我博客中写了一个用maven,我当时没有,于是晚上回家尝试了一下,结果比较容易就实现了. 之后和那个网友聊了一下,他 ...

  2. BigDecimal 的roundMode 舍位模式

    roundMode是指舍位时候的模式,传参数的时候用BigDecimal.ROUND_XXXX_XXX,   有: 以下例子是setScale(0,BigDecimal.ROUND_XXXX_XXX) ...

  3. 简单的Web留言本

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. svn 提交失败

    刚刚使用SVN 提交代码时提示失败. svn: Commit failed (details follow):svn: Can't open file '/home/svn/project/db/tx ...

  5. elasticsearch auto delete old indices

    定在crontab 每天执行 crontab -e * 2 * * * ~/autodelete.py Python 代码如下 #!/usr/bin/env python # encoding:utf ...

  6. flex polygon 序列化为txt 文本

    当我们要把一个地块导出为txt的时候,应该怎么写,这是比较有用的这样可以帮助我们存档之类的,这里是基于某个地方的独立坐标系,是基于自己发布地图,如果是用百度地图或者其他网上的地图可能不适用. pack ...

  7. 5,SFDC 管理员篇 - 数据模型 - 数据关联

    1,PickList 1,填写基本信息 2, 选择能角色的权限 3,在哪一个层上显示(object 上有多个 Record Type 对应多个层,需要选择在哪一个层显示) 4,Save   2,两个P ...

  8. 基于boa服务器的web控制mini2440的GPIO口

    win7 系统  虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...

  9. 实现Base64加密解密

    using System; using System.Text;   namespace Common { /// <summary> /// 实现Base64加密解密 /// </ ...

  10. 利用 Gulp 处理前端工作流程

    最近做项目,因为每次做完后都要手动压缩CSS.JS 等文件,压缩后另存为 *.min.xxx. Less 还要手动输入命令进行编译,调整页面也经常要手动刷新页面看效果,很麻烦,就尝试用 gulp 去处 ...