C#操作XML文件实例汇总

下面我将为你详细讲解“C#操作XML文件实例汇总”的完整攻略。

一、 XML文件的基础语法

要使用C#操作XML文件,首先需要了解XML文件的基础语法。XML文件由标记语言表示,具有层次结构,包含标记、属性、值等。有以下基础语法规则:

1.标记

XML文件中所有元素都由标记表示,标记有起始标记和结束标记
起始标记:<标记名>
结束标记:<!--标记名-->

2.属性

XML文件中的元素可以带有属性,属性有属性名、属性值等组成,它们需要用双引号来包裹
属性:<标记名 属性名="属性值">

3.值

XML文件中的元素也可以包含值,值可以是文本、数字、布尔值等
值:<标记名>值<!--标记名-->

示例代码:

<?xml version="1.0"?>
<students>
  <student id="1">
    <name>张三</name>
    <age>18</age>
    <gender>男</gender>
  </student>
  <student id="2">
    <name>李四</name>
    <age>20</age>
    <gender>女</gender>
  </student>
</students>

二、使用C#操作XML文件

在C#中可以使用XmlDocument类来操作XML文件。常用的方法有加载XML文件、查询XML节点、新增XML元素、修改XML元素等。

1.加载XML文件

可以使用XmlDocumentLoad()方法加载XML文件。要加载的XML文件必须存在,否则会抛出异常。

XmlDocument xml = new XmlDocument();
xml.Load("students.xml");

2.查询XML节点

可以使用XmlDocumentSelectSingleNode()SelectNodes()方法查询XML节点。

//查询根节点
XmlNode root = xml.SelectSingleNode("students");

//查询所有学生节点
XmlNodeList students = xml.SelectNodes("//student");

//查询id为1的学生节点
XmlNode student = xml.SelectSingleNode("//student[@id='1']");

//查询名为张三的学生节点
XmlNode studentWithName = xml.SelectSingleNode("//student[name='张三']");

3.新增XML元素

可以使用XmlDocumentCreateElement()方法创建新的XML元素,并使用AppendChild()方法将新元素添加到现有元素中。

//新增一个学生节点
XmlElement newStudent = xml.CreateElement("student");
newStudent.SetAttribute("id", "3");//为节点添加属性
XmlElement name = xml.CreateElement("name");
name.InnerText = "王五";//为节点添加文本值
newStudent.AppendChild(name);
XmlElement age = xml.CreateElement("age");
age.InnerText = "19";
newStudent.AppendChild(age);
XmlElement gender = xml.CreateElement("gender");
gender.InnerText = "男";
newStudent.AppendChild(gender);
xml.DocumentElement.AppendChild(newStudent);//将新节点添加到文档中

4.修改XML元素

可以使用XmlNodeInnerTextSetAttribute()方法修改XML节点的值或属性。

//修改id为1的学生节点的属性值
XmlNode student = xml.SelectSingleNode("//student[@id='1']");
((XmlElement)student).SetAttribute("id", "11");

//修改名为张三的学生节点的年龄
XmlNode studentWithName = xml.SelectSingleNode("//student[name='张三']");
XmlNode age = studentWithName.SelectSingleNode("age");
age.InnerText = "20";

三、完整的C#操作XML文件实例代码

using System;
using System.Xml;

namespace XmlDocumentDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载XML文件
            XmlDocument xml = new XmlDocument();
            xml.Load("students.xml");

            //查询根节点
            XmlNode root = xml.SelectSingleNode("students");

            //查询所有学生节点
            XmlNodeList students = xml.SelectNodes("//student");
            foreach (XmlNode student in students)
            {
                Console.WriteLine(student.SelectSingleNode("name").InnerText);//输出学生姓名
            }

            //查询id为1的学生节点
            XmlNode student = xml.SelectSingleNode("//student[@id='1']");
            Console.WriteLine(student.SelectSingleNode("name").InnerText);//输出学生姓名

            //新增一个学生节点
            XmlElement newStudent = xml.CreateElement("student");
            newStudent.SetAttribute("id", "3");//为节点添加属性
            XmlElement name = xml.CreateElement("name");
            name.InnerText = "王五";//为节点添加文本值
            newStudent.AppendChild(name);
            XmlElement age = xml.CreateElement("age");
            age.InnerText = "19";
            newStudent.AppendChild(age);
            XmlElement gender = xml.CreateElement("gender");
            gender.InnerText = "男";
            newStudent.AppendChild(gender);
            xml.DocumentElement.AppendChild(newStudent);//将新节点添加到文档中

            //修改id为1的学生节点的属性值
            XmlNode studentToUpdate = xml.SelectSingleNode("//student[@id='1']");
            ((XmlElement)studentToUpdate).SetAttribute("id", "11");

            //修改名为张三的学生节点的年龄
            XmlNode studentToUpdate2 = xml.SelectSingleNode("//student[name='张三']");
            XmlNode ageToUpdate = studentToUpdate2.SelectSingleNode("age");
            ageToUpdate.InnerText = "20";

            //保存修改后的XML文件
            xml.Save("students.xml");
        }
    }
}

以上是C#操作XML文件的实例汇总,通过以上示例可以学习如何使用C#操作XML文件,并且可以根据自己的需求对XML文件进行修改和处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作XML文件实例汇总 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • java中使用sax解析xml的解决方法

    当需要处理大型XML文件时,SAX解析器是一种比DOM解析器更有效的解析器。DOM解析器在将整个文档加载到内存中并在系统中构建树结构后解析XML文档,而SAX解析器则在处理XML文档时逐个元素进行解析,它遍历该文档,并在需要时发出事件以指示XML文档的不同部分。 SAX解析器不需要在内存中保存整个XML文档,因此可以处理很大的XML文件而无需担心内存不足或性…

    html 2023年5月30日
    00
  • HTML嵌入CSS样式(四种方法)

    HTML嵌入CSS样式的方法有以下四种: style标签嵌入CSS样式 在HTML文档的头部或body部分中通过style标签嵌入CSS样式。可以在style标签中添加任意数量的CSS样式规则。 代码示例: <!DOCTYPE html> <html> <head> <title>HTML嵌入CSS样式示例&l…

    Web开发基础 2023年3月15日
    00
  • .net 操作xml的简单方法及说明

    .NET操作XML的简单方法及说明 什么是XML? XML(可扩展标记语言)是一种常用的数据交换格式,被广泛应用于互联网和软件开发中。XML使用标记表示数据,类似于HTML,但可以自定义标记,因此具备更高的灵活性和可扩展性。在.NET平台中,提供了许多简单的方法来操作XML。 XML的操作方法 读取XML 在.NET中,可以使用XmlDocument类来读取…

    html 2023年5月30日
    00
  • HTML表格标记教程(3):宽度和高度属性WIDTH、HEIGHT

    当我们创建HTML表格时,宽度和高度是非常重要的属性。对于我们的表格,确保它们的大小是正确的可以让它们更好地适应我们的页面和数据。在本教程中,我们将重点讲解HTML表格的宽度和高度属性。 WIDTH属性 语法格式 <td width="pixels">内容</td> 说明 WIDTH属性定义了单元格的宽度,可以用像…

    html 2023年5月30日
    00
  • xml分页+ajax请求数据源+dom取结果实例代码

    分页是Web开发中经常使用的功能之一,XML作为一种通用的数据交换格式,也经常用于分页的开发中。 下面是一份关于实现XML分页+Ajax请求数据源+DOM取结果的攻略,包括示例代码和说明。 步骤一:编写后台返回XML格式的数据源接口 这里以Java语言作为示例,演示如何返回XML格式的数据源。 public class DataServlet extends…

    html 2023年5月30日
    00
  • C#通过XML节点属性/属性值读取写入XML操作代码实例

    下面我将为您详细讲解”C#通过XML节点属性/属性值读取写入XML操作代码实例”的完整攻略。 什么是XML XML是一种标记语言,用于描述数据的结构和内容。它是一种元素,属性和文本的组合。XML文档由一个根元素开始,并具有唯一结束标记。XML是可扩展的,可用于存储和传输任何类型的数据。 读取XML节点属性/属性值 读取XML节点属性/属性值是通过使用C#的X…

    html 2023年5月30日
    00
  • PHP将XML转数组过程详解

    这里我给你详细讲解一下“PHP将XML转数组过程详解”的完整攻略。 1. 什么是XML? XML(Extensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标记语言,使用语法类似于HTML,但比HTML还要灵活和可扩展。XML被广泛应用于数据交换、配置文件、Web服务等领域。 2. PHP中将XML转为数组的方法 在PH…

    html 2023年5月30日
    00
  • 永久解决VSCode终端中文乱码问题

    以下是“永久解决VSCode终端中文乱码问题”的完整攻略: 1. 问题描述 在使用VSCode终端时,有时输出的中文会出现乱码,这给我们的开发和调试带来了很大的不便。 2. 解决方法 2.1 方法一:修改终端默认编码 我们可以通过修改终端默认编码的方式来解决中文乱码问题。 2.1.1 查看终端默认编码 在终端中执行如下命令: echo "$LANG…

    html 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部