C# 读取XML文件的几种方式

article/2025/9/27 22:20:59

在开发过程中,我们有时会需要保存到本地一些结构化数据或者配置信息,这时就可以选择用xml文件。当然xml的用途也不仅仅是这些。

7ea3c02c81449bb1ad296d1582d713a4.png

这一篇来谈一谈关于读取xml文件的几种方式;

我们有以下两个文件,一个是带有id属性的,一个是不带属性的简单xml文件。

<?xml version="1.0" encoding="utf-8" ?>
<studentList><student><name>张三</name><sex>男</sex><old>20</old></student><student><name>李四</name><sex>女</sex><old>21</old></student>
</studentList>
<?xml version="1.0" encoding="utf-8" ?>
<studentList><student><name id="1">张三</name><sex id="11">男</sex><old id="111">20</old></student><student><name id="2">李四</name><sex id="22">女</sex><old id="222">21</old></student>
</studentList>

第一种方式:DataSet读取

这种方式最简单,而且取数据也很方便,但是对于比较复杂的xml,操作起来也很麻烦,每一个带属性的节点都会生成一个table,可以自行监视下DataSet的结构情况,然后做不同的处理

//xml文件路径string xmlPath = Application.StartupPath + "\\Student.xml";//不带属性string xmlPaths = Application.StartupPath + "\\Students.xml";//带属性//dataset读取简单xml文件DataSet ds = new DataSet();ds.ReadXml(xmlPath);
//读取第一条数据的name节点string name = ds.Tables[0].Rows[0]["name"].ToString();//输出:张三Console.WriteLine(name);//dataset读取带属性的xml文件ds = new DataSet();ds.ReadXml(xmlPaths);//读取的节点名称string nodeName = "name";name = ds.Tables[nodeName].Rows[0][nodeName+"_Text"].ToString();//读取节点的id属性string id = ds.Tables[nodeName].Rows[0]["id"].ToString();//输出:id:1,name:张三Console.WriteLine("id:{0},name:{1}",id,name);

第二种方式:XmlDocument

这种方式就很强大并且灵活了,根据节点顺序逐步获取就可以

//需导入命名空间 
using System.Xml;//XmlDocument读取xml文件XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(xmlPaths);//获取xml根节点XmlNode xmlRoot = xmlDoc.DocumentElement;//根据节点顺序逐步读取//读取第一个name节点name = xmlRoot.SelectSingleNode("student/name").InnerText;//读取节点的id属性id = xmlRoot.SelectSingleNode("student/name").Attributes["id"].InnerText;//输出:id:1,name:张三Console.WriteLine("id:{0},name:{1}", id, name);//读取所有的name节点foreach (XmlNode node in xmlRoot.SelectNodes("student/name")){//循环输出Console.WriteLine("id:{0},name:{1}", node.Attributes["id"].InnerText, node.InnerText);}

第三种方式:JSON.NET

使用JSON.NET可以将xml转换成json去操作

如果是对xml文件进行操作的话,个人不太建议使用这种方式;

需要引入Newtonsoft.Json.dll,使用时请注意版本,低版本可能不支持

//需导入命名空间 
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;//XmlDocument读取xml文件xmlDoc = new XmlDocument();xmlDoc.Load(xmlPaths);//转换为jsonstring json = JsonConvert.SerializeXmlNode(xmlDoc);//解析jsonJObject jobj = JObject.Parse(json);JArray jarr = JArray.Parse(jobj["studentList"]["student"].ToString());//输出:id:1,name:张三Console.WriteLine("id:{0},name:{1}", jarr[0]["name"]["#text"], jarr[0]["name"]["@id"]);

简单的xml文件个人推荐使用第一种,复杂点的使用第二种,具体可以根据需求选择。

由简入繁,拿来即用

后续精彩,持续关注

欢迎关注公众号: dotnet编程大全

技术群: 需要进技术群的添加小编微信mm1552923,备注:加群;


http://chatgpt.dhexx.cn/article/6R9KgAxG.shtml

相关文章

Android解析XML的三种方式

在Android中提供了三种解析XML的方式:DOM(Document Objrect Model),SAX(Simple API XML),以及Android推荐的Pull解析方式. 如图: 本篇博客使用的xml文件如下:(这里是获取网络XML)person.xml <?xml version="1.0" encoding="UTF-8"?> <pers…

XML解析之SAX方式

XML文件解析方式之一是SAX方式&#xff0c;SAX解析方式会逐行地去扫描XML文档&#xff0c;当遇到标签时会触发解析处理器&#xff0c;采用事件处理的方式解析XML (Simple API for XML) 。SAX是一个用于处理XML事件驱动的“推”模型&#xff0c;虽然不是官方标准&#xff0c;但它…

实现XML解析的几种技术

XML在各种开发中都广泛应用&#xff0c;Android也不例外。作为承载数据的一个重要角色&#xff0c;如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法。 在Android中&#xff0c;常见的XML解析器分别为SAX解…

MATLAB中的均值与方差求法(mean,var,std函数使用)

目录 均值-mean()函数的用法方差var函数std函数 均值-mean()函数的用法 对于矩阵A&#xff1a; &#xff08;1&#xff09;mean(A,1)为对矩阵A的列求均值 &#xff08;2&#xff09;mean(A,2)为对矩阵A的行求均值 &#xff08;3&#xff09;mean(A)当传入的参数只有矩阵时&a…

matlab怎么方差函数,密度函数已知,怎么用matlab求其数学期望和方差?

在没有先验知识的情况下是不可能的&#xff0c;在你已知它可能是哪种分布(或者哪些种分布之一)的情况下可以求出分布的参数www.mh456.com防采集。 因为你的是密度函2113数&#xff0c;所以不会5261是离散型随机变量&#xff0c;如果你有4102概率密度函数的表达式的话&#xff0…

matlab怎么算方差和标准差,matlab怎么求矩阵的均值和标准差 看完你就知道了

有时候我们在使用matlab编程计算的时候&#xff0c;想求矩阵的均值和方差&#xff0c;怎么求呢&#xff0c;下面来分享一下方法 工具/材料 matlab 求矩阵的均值和标准差方法 matlab求矩阵均值方法 01 第一步打开matlab命令行窗口&#xff0c;新建一个a[1 2 3;4 5 6;7 8 9]矩阵&…

剩余方差matlab,用matlab的var函数求方差

什么是方差和标准差&#xff1f; 方差(variance) 和标准差(standard variance) 方差&#xff1a;表示一组离散数据偏离平均值的程度。 公式&#xff1a; 方差公式 方差的算术平方根称为该随机变量的标准差。 在Matlab中&#xff0c;方差用var函数求&#xff0c;标准差用std函数…

matlab里方差分析的盒子图怎么看,Matlab方差分析

Matlab 方差分析(T检验) 在工农业生产和科学研究中,经常遇到这样的问题:影响产品产量、质量的因素很多,我们需要了解在这众多的因素中,哪些因素对影响产品产量、质量有显著影响.为此,要先做试验,然后对测试的结果进行分析.方差分析就是分析测试结果的一种方法.在方差分析中,把在…

20171205_Matlab求方差,均值,均方差,协方差的函数

1、 均值 数学定义&#xff1a; Matlab函数&#xff1a;mean >>X[1,2,3] >>mean(X)2 如果X是一个矩阵&#xff0c;则其均值是一个向量组。mean(X,1)为列向量的均值&#xff0c;mean(X,2)为行向量的均值。 >>X[12 3 45 6] >>mean(X,1)[2.5,3.5, 4.5] &g…

方差分析MATLAB实现

单因素方差分析的MATLAB实现 单因素均衡数据的实现 单因素非均衡数据方差分析 p192 8.22 X[85,80,90,88,87,94,56,62,55,48,92,99,95,91,75,72,81];group[ones(1,3),2*ones(1,4),3*ones(1,2),4*ones(1,2),5*ones(1,4),6*ones(1,3)];anova1(X,group); 从箱线图可以看到第2个第五…

matlab算方差std,MATLAB 方差函数 var std

1、均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均值是一个向量组。mean(X,1)为列向量的均值,mean(X,2)为行向量的均值。 >>X=[1 2 3 4 5 6] >>mean(X,1)=[2.5, 3.5, 4.5] >>mean(X,2)=[2 5] 若要求整个矩…

matlab 方差,方差分解——matlab 代码

封面图片源自网络: 接着前面两期分析,今天介绍期限结构和收益率的方差分解代码: function var_plot= var_term( Phi_DRAW,OMIGA_ff_DRAW,HH) %%%% HH means the step length for forecast %%%%%%%%%% %%%%%% get the forecast variance decomposition %%%%%%% %%% SIGMA_u=P…

matlab u怎么求均方差,Matlab求方差,均值,均方差,協方差的函數

1、均值 數學定義&#xff1a; Matlab函數&#xff1a;mean >>X[1,2,3] >>mean(X)2 如果X是一個矩陣&#xff0c;則其均值是一個向量組。mean(X,1)為列向量的均值&#xff0c;mean(X,2)為行向量的均值。 >>X[1 2 3 4 5 6] >>mean(X,1)[2.5, 3.5, 4.5]…

Matlab系列教程_数值计算_求方差和标准差

首先&#xff0c;什么是方差和标准差&#xff1f; 方差&#xff0c;是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量&#xff0c;统计中的方差&#xff08;样本方差&#xff09;是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中&#xff…

MATLAB中均值、方差、均方差的计算方法

1、 均值 数学定义&#xff1a; &#xff08;自己搜一下&#xff09; Matlab函数&#xff1a;mean >>X[1,2,3] >>mean(X)2 如果X是一个矩阵&#xff0c;则其均值是一个向量组。mean(X,1)为列向量的均值&#xff0c;mean(X,2)为行向量的均值。 >>X[1 2 3 4 5 …

利用MATLAB求均值、方差和标准差

1、 均值 数学定义&#xff1a; Matlab函数&#xff1a;mean 如果X是一个矩阵&#xff0c;则其均值是一个向量组。mean(X,1)为列向量的均值&#xff0c;mean(X,2)为行向量的均值。若要求整个矩阵的均值&#xff0c;则为mean(mean(X))或者mean2(X)。 2、 方差 数学定义&…

matlab 方差计算

代码如下&#xff1a; I imread(); dark_Idouble(I)/255; avgmean2(dark_I); %求图像均值 [m,n]size(dark_I); s0; for x1:mfor y1:nss(dark_I(x,y)-avg)^2; %求得所有像素与均值的平方和。end end%求图像的方差 a1var(dark_I(:)); %第一种方法&#xff1a;利用函数var求得…

环形队列的实现

首先我们先来了解一下队列是什么&#xff1f; 队列&#xff1a;数据先入先出&#xff0c;后进后出&#xff08;与栈刚好相反&#xff09;&#xff0c;主要通过数组实现。需要通过两个指针来创建对应的队列&#xff1b;一个指针为前缀pre&#xff0c;一个指针为后缀rear。pre指…

环形队列(Python代码实现)

环形队列是是在普通队列上进行的变化&#xff0c;本质和普通单向队列相同&#xff0c;都是队尾进队&#xff0c;队首出队。环形队列与普通队列的区别在于它能够循环利用空间&#xff0c;元素从队首出队后释放的空间能够被重复利用。 主要特点&#xff1a; 当队尾指针front M…

队列和环形队列

1、队列 1) 队列是一个有序列表&#xff0c;可以用数组或是链表来实现。 2) 遵循先入先出的原则。即&#xff1a;先存入队列的数据&#xff0c;要先取出。后存入的要后取出。 实例&#xff1a; 声明&#xff1a; MaxSize&#xff1a;队列最大的长度 rear&#xff1a;尾指针&…