使用C#对XML文件进行操作,包括生成一个XML文档,以及读取XML文档中的内容,修改某个元素中的内容

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引用命名空间
using System.Xml; namespace 读写xml
{
public class RWXml
{
/// <summary>
/// 生成一个XML文档
/// </summary>
public void WriteXml()
{
Random rd = new Random(); //首先创建XML文档
/*1、实例化一个XmlDocument类*/
XmlDocument xDoc = new XmlDocument();
//创建XML声明
XmlDeclaration declaration = xDoc.CreateXmlDeclaration("1.0", "UTF-8", "yes");//版本号,编码格式,返回值是一个声明
//将指定的节点添加到该节点的子节点的列表的末尾,此处是添加声明
xDoc.AppendChild(declaration);
//一个XML文档,至少得有一个根元素
//创建根节点,返回值是一个元素
XmlElement elem = xDoc.CreateElement("students");//创建具有指定名称的元素
xDoc.AppendChild(elem);//添加根节点 for (int i = 1; i < 10; i++)
{
//添加子节点到根节点里面
XmlElement elem1 = xDoc.CreateElement("student");//创建子节点
elem.AppendChild(elem1);//将第一级的子节点添加到根节点后面 ////添加子节点的节点
//XmlElement elsm1_1 = xDoc.CreateElement("name");
//elem1.AppendChild(elsm1_1); //给节点添加属性
elem1.SetAttribute("姓名", "张三");//设置具有指定名称的属性的值,属性名称,属性值
elem1.SetAttribute("学号", i.ToString()); //添加子节点的节点
XmlElement elem1_1 = xDoc.CreateElement("语文成绩");
elem1.AppendChild(elem1_1);
elem1_1.InnerText = rd.Next(40, 120).ToString(); XmlElement elem1_2 = xDoc.CreateElement("数学成绩");
elem1.AppendChild(elem1_2);
elem1_2.InnerText = rd.Next(40, 120).ToString(); XmlElement elem1_3 = xDoc.CreateElement("英语成绩");
elem1.AppendChild(elem1_3);
elem1_3.InnerText = rd.Next(40, 120).ToString();
}
xDoc.Save("students.xml");
} /// <summary>
/// 读取XML文档
/// </summary>
public void ReadXml()
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load("students.xml"); //获取到根节点
XmlNode rootNode = xDoc.SelectSingleNode("students");
XmlNodeList nodeList = rootNode.ChildNodes;//获取节点的所有子节点 foreach (XmlNode no in nodeList)
{
//类型显示转换
XmlElement elem = (XmlElement)no;//将节点转换为元素,方便后面获取属性
string name = elem.GetAttribute("姓名");
string number = elem.GetAttribute("学号");
//输出名字和学号信息
Console.WriteLine("姓名:" + name + " 学号:" + number); //获取子节点的所有节点
XmlNodeList childList = elem.ChildNodes;
foreach (XmlNode child in childList)
{
XmlElement childElem = (XmlElement)child;//节点转换为元素 string className = childElem.Name;//获取节点的名称
string score = childElem.InnerText;//获取节点的值
Console.WriteLine(className + ":" + score); //修改指定学号的学生的指定科目成绩
if (number == "3")
{
if (childElem.Name == "语文成绩")
{
childElem.InnerText = "120";
}
if (childElem.Name == "数学成绩")
{
childElem.InnerText = "120";
}
}
}
}
xDoc.Save("students.xml");
Console.ReadLine();
}
}
}

C#基础_XML文件读写的更多相关文章

  1. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  2. 第二篇:python基础之文件读写

    python基础之文件读写   python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使 ...

  3. C#基础_XML文件介绍

    XML简介 XML 被设计用来传输和存储数据. HTML 被设计用来显示数据. 什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语 ...

  4. 转载-Python学习笔记之文件读写

    Python 文件读写 Python内置了读写文件的函数,用法和C是兼容的.本节介绍内容大致有:文件的打开/关闭.文件对象.文件的读写等. 本章节仅示例介绍 TXT 类型文档的读写,也就是最基础的文件 ...

  5. Python文件读写(open(),close(),with open() as f...)

    Python内置了读写文件的函数,用法和C是兼容的.本节介绍内容大致有:文件的打开/关闭.文件对象.文件的读写等. 本章节仅示例介绍 TXT 类型文档的读写,也就是最基础的文件读写,也需要注意编码问题 ...

  6. Python学习(九)IO 编程 —— 文件读写

    Python 文件读写 Python内置了读写文件的函数,用法和C是兼容的.本节介绍内容大致有:文件的打开/关闭.文件对象.文件的读写等. 本章节仅示例介绍 TXT 类型文档的读写,也就是最基础的文件 ...

  7. 七. Python基础(7)--文件的读写

    七. Python基础(7)--文件的读写 1 ● 文件读取的知识补充 f = open('file', encoding = 'utf-8') content1 = f.read() content ...

  8. Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...

  9. python 基础-文件读写'r' 和 'rb'区别

    原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...

随机推荐

  1. FlinkSQL 之乱序问题

    乱序问题 在业务编写 FlinkSQL 时, 非常常见的就是乱序相关问题, 在出现问题时,非常难以排查,且无法稳定复现,这样无论是业务方,还是平台方,都处于一种非常尴尬的地步. 在实时 join 中, ...

  2. windiws下安装Composer

    1.先下载Composer-Setup.exe,下载地址:下载Composer .会自动搜索php.exe的安装路径,如果没有,就手动找到php路径下的php.exe. 2.在PHP目录下,打开php ...

  3. JuiceFS V1.0 RC1 发布,大幅优化 dump/load 命令性能, 深度用户不容错过

    各位社区的伙伴, JuiceFS v1.0 RC1 今天正式发布了!这个版本中,最值得关注的是对元数据迁移备份工具 dump/load 的优化. 这个优化需求来自于某个社区重度用户,这个用户在将亿级数 ...

  4. NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分页获取数据失败

    问题代码如下: var result=repository.QueryOver<modal>() .Where(p=>p.Code==Code) .OrderBy(p=>p.I ...

  5. Linux文本管理命令

    touch命令: 创建空文件:touch newfile 也可以使用重定向符(>)创建空文件: > newfile 刷新文件时间: touch 已经存在的文件 cp命令:文件的复制 选项: ...

  6. Mysql安装配置以及解决重装Mysql时忘记root password问题

    目录 1.Mysql安装以及环境变量配置 重装Mysql时忘记root password问题 1.Mysql安装以及环境变量配置 官网安装:​​​​​​https://www.mysql.com/ 按 ...

  7. JS中通过id或者class获取文本内容

    一.JS通过id获取文本内容 二.JS通过class获取文本内容

  8. @RequestBody,@RequestParam是否能随意改变入参字母大小写

    在工作中遇到了一个问题,很多接口有的入参是companyName,有的入参是companyname,实际上,这两入参能任意适配所有接口,甚至随意改变大小写! 1. @RequestBody是完全按照驼 ...

  9. Identity Server 4资源拥有者密码认证控制访问API

    基于上一篇文章中的代码进行继续延伸,只需要小小的改动即可,不明白的地方可以先看看本人上一篇文章及源码: Identity Server 4客户端认证控制访问API 一.QuickStartIdenti ...

  10. VS Code + GitHub

    来到博客园学着别人美化了一下自己的博客页面,蛮好看的,然后右上角有一个"Fork me on GitHub".之前就因为好奇而注册过GitHub,但一直不会使,现在正式开始编程学习 ...