首页 技术 正文
技术 2022年11月21日
0 收藏 462 点赞 4,532 浏览 2230 个字

使用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();
}
}
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,020
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,359
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,142
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,772
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,850