首页 > 编程语言 >C#:解析XML文件的C#指南

C#:解析XML文件的C#指南

时间:2023-03-30 17:37:05浏览次数:37  
标签:XML 文件 xml C# doc XmlDocument 使用 解析

XML是一种常用的数据交换格式,C#提供了许多内置的类和方法来解析和操作XML文件。

在这篇文章中,我们将介绍如何使用C#解析XML文件。

读取XML文件

要读取XML文件,我们可以使用XmlDocument类。

以下是一个示例代码,它读取名为example.xml的XML文件并打印其内容:

using System;
using System.Xml;

class Program
{
    static void Main(string[] args)
    {
        XmlDocument doc = new XmlDocument();
        doc.Load("example.xml");
        Console.WriteLine(doc.InnerXml);
    }
}

在上面的代码中,我们首先创建了一个XmlDocument对象,然后使用Load方法加载XML文件。最后,我们使用InnerXml属性打印XML文件的内容。

遍历XML文件

要遍历XML文件,我们可以使用XmlNode类。以下是一个示例代码,它遍历名为example.xml的XML文件并打印每个元素的名称和值:

using System;
using System.Xml;

class Program
{
    static void Main(string[] args)
    {
        XmlDocument doc = new XmlDocument();
        doc.Load("example.xml");
        XmlNodeList nodes = doc.DocumentElement.ChildNodes;
        foreach (XmlNode node in nodes)
        {
            Console.WriteLine(node.Name + ": " + node.InnerText);
        }
    }
}

在上面的代码中,我们首先创建了一个XmlDocument对象,然后使用Load方法加载XML文件。

接下来,我们使用DocumentElement属性获取XML文件的根元素,并使用ChildNodes属性获取根元素的所有子元素。

最后,我们使用foreach循环遍历每个子元素,并使用Name和InnerText属性打印元素的名称和值。

修改XML文件

要修改XML文件,我们可以使用XmlDocument类和XmlNode类。以下是一个示例代码,它修改名为example.xml的XML文件
以下是使用C#修改XML文件的示例代码:

using System;
using System.Xml;

class Program
{
    static void Main(string[] args)
    {
        XmlDocument doc = new XmlDocument();
        doc.Load("example.xml");
        XmlNodeList nodes = doc.DocumentElement.ChildNodes;
        foreach (XmlNode node in nodes)
        {
            if (node.Name == "book")
            {
                XmlAttribute attr = doc.CreateAttribute("genre");
                attr.Value = "fantasy";
                node.Attributes.Append(attr);
            }
        }
        doc.Save("example.xml");
    }
}

在上面的代码中,我们首先创建了一个XmlDocument对象,然后使用Load方法加载XML文件。接下来,我们使用DocumentElement属性获取XML文件的根元素,并使用ChildNodes属性获取根元素的所有子元素。然后,我们使用foreach循环遍历每个子元素,并检查其名称是否为“book”。如果是,我们使用CreateAttribute方法创建一个名为“genre”的新属性,并将其值设置为“fantasy”。最后,我们使用Attributes属性将新属性附加到子元素上,并使用Save方法保存修改后的XML文件。

标签:XML,文件,xml,C#,doc,XmlDocument,使用,解析
From: https://www.cnblogs.com/yellow3gold/p/17273621.html

相关文章

  • oracle生僻字处理
    ZHS16GBK对某些生僻字存储不了,需要把列的类型从varchar2转换成nvarchar2或者把数据库的字符集转成utf8对于已提交的数据通过函数utl_raw.cast_to_nvarchar2把unicode转成nvarchar2对数据操作的时候用unicode转换,根据生僻字到网站查询对应unicodehttp://www.bejson.com/convert/......
  • EasyCVR视频融合平台国标GB28181协议设备接入时,可支持过滤通道类型
    EasyCVR基于云边端智能协同架构,能支持海量视频的轻量化接入与集中汇聚管理,平台可支持多协议接入,包括市场主流标准协议与厂家私有协议及SDK,如:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、宇视SDK等(具体见下图),可分发多格式的视频流,包括:RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、......
  • PageOffice 在线编辑 office文件,回调父页面
    一、子页面调用父页面的方法varvalue=window.external.CallParentFunc("ParentFunName(Arguments);");//父页面的JS函数有返回值window.external.CallParentFunc("ParentFunName(Arguments);");//父页面的JS函数无返回值二、是否需要传递参数(子页面关闭窗口的同时刷新父页面......
  • css控制文本超出省略(单行、两行、多行)
    想要控制文本长度?想要文本超出隐藏?还想要不用JavaScript实现?让我们来用css试试吧~本文重点css控制文本超出省略。完成单行、两行、多行的效果注意点本文提到的方法都需要控制元素width的大小单行省略:overflow:hidden;text-overflow:ellipsis;white-space:nowrap;......
  • javascript大文件上传解决方案支持分片断点上传
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。pub......
  • 修改docker目录
    1)、停掉docker服务[root@localhost~]#systemctlstopdocker2)、修改配置文件[root@localhost~]#mkdir/data[root@localhost~]#vim/usr/lib/systemd/system/docker.service#找到ExecStart=/usr/bin/dockerd部分所在的行,行尾增加参数--data-rootExecStart=/usr/bin/docke......
  • C#:Windows Forms应用程序.cs/.designer.cs/.resx文件之间关系
    在使用VisualStudio开发WindowsForms应用程序时,我们会发现每个窗体都有三个文件:.cs、.designer.cs和.resx。这三个文件之间的关系是什么呢?首先.cs文件是窗体的代码文件,其中包含了窗体的所有事件处理程序、属性和方法等。.designer.cs文件是由VisualStudio自动生成的,其中包......
  • 二、Elasticsearch部署
    第一次安装的是7.0版本,运维过程中发现与8.0还是有很多不同的地方下载javajdk:环境设置下载ES:解压压缩包修改yml允许跨域,为后面head做准备config->elasticsearch.yml增加下面配置(注意格式,:后面必须跟空格,结束不能带;号)http.cors.enabled:truehttp.cors.allow-ori......
  • HTML元素截图(html2canvas)
    html2canvas官网 :http://html2canvas.hertzen.com/开源地址:https://github.com/niklasvh/html2canvas <body><divid="div"><span>内容</span><divstyle="height:300px;border:solid1pxred;width:100px">......
  • 单用户模式进centos系统修改root密码
    为虚拟机server重设管理密码1)重启系统,进入recovery恢复模式在读秒时候按e键,找到linux16行,按键盘End末尾添加空格rd.breakconsole=tty0按ctrl+x启动2)......