使用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. Oracle常见问题解决方法

    1.设置数据库用户的密码有效期为 无限制 --查询proile文件名 SELECT username,PROFILE FROM dba_users; --查询文件 的密码保护策略 SELECT * F ...

  2. 解决Windows微软账户无法登录

    更新记录 2022年4月16日:本文迁移自Panda666原博客,原发布时间:2021年8月25日. 将DNS的服务器地址修改为4.2.2.1或者4.2.2.2就可以解决无法登录microsoft账户 ...

  3. service继承baseService后无法注入dao的解决办法

    1.在set方法上加@Autowired 2.在set方法上加@Resource 这样子就可以拿到dao了

  4. 老子云AMRT全新三维格式正式上线,其性能全面超越现有的三维数据格式

    9月16日,老子云AMRT全新三维格式正式上线,其性能远超现有的三维数据格式.目前已有含国家超算长沙中心.中科院空间所.中车集团等上百家政企事业单位的项目中使用了AMRT格式,大大提升了可视化项目的开 ...

  5. 能快速搭建三维场景,这款3D全场景编辑器你还没用过吗?

    今天就给大家分享一个非常好用的老子云3D全场景编辑器,不仅可以基于GIS数据,帮助用户快速搭建3D城市大场景.实现Web端流畅展示. 并且搭建的3D场景可离线开发成一个空间信息直观的.可交互.易于设计 ...

  6. SAP setting and releasing locks

    REPORT demo_transaction_enqueue MESSAGE-ID sabapdocu. TABLES sflight. DATA text(8) TYPE c. DATA ok_c ...

  7. ASP.NET MVC之读取服务器文件资源的两种方式

    初次认识asp.net mvc时,以为所有文件都需要走一遍路由,然后才能在客户端显示, 所以我首先介绍这一种方式 比如说:我们在服务器上有图片: ~/resource/image/5.jpg 我们就需 ...

  8. 令你瞠目结舌的 Python 代码技巧

    0. for-else 在 Python 中,else 不仅可以与 if 搭配使用,还可以与 for 结合. python答疑 咨询 学习交流群2:660193417### for x in rang ...

  9. Python使用腾讯云-短信服务发送手机短信

    目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 国内短信支持操作: • 指定模板单发短信 • 指定模板群发短信 • 拉取短信回执 ...

  10. 反向传播神经网络(BP)

    实验部分: ①输入.输出矢量及问题的阐述 由题意输入变量取值范围为e={-2,-1,0,1,2}和ec={-2,-1,0,1,2},则输入矢量有25种情况,分别如下所示: 则由T=int((e+ec) ...