C# 对XML基本操作总结

简介:

C# 对XML基本操作包括读取节点的数据,添加节点。读取节点属性,修改节点属性等。具体如下:

XML文件:文件在MyDocument文件夹下

<?xml version= "1.0"  encoding= "utf-8" ?>
<PersonF xmlns= ""  Name= "(test)work hard work smart!" >
   <person Name= "Person1" >
     <ID>1</ID>
     <Name>XiaoA</Name>
     <Age>59</Age>
   </person>
   <person Name= "Person2" >
     <ID>2</ID>
     <Name>XiaoB</Name>
     <Age>29</Age>
   </person>
   <person Name= "Person3" >
     <ID>3</ID>
     <Name>XiaoC</Name>
     <Age>103</Age>
   </person>
   <person Name= "Person4" >
     <ID>4</ID>
     <Name>XiaoD</Name>
     <Age>59</Age>
   </person>
</PersonF>

  

Code:说明都在注释里。

public   void  TestXML()
{
     XmlDocument doc = new  XmlDocument();
     string  path = "http://www.cnblogs.com/MyDocument/Person.xml" ;
     try
     {
 
         //doc.Load(Server.MapPath()
         doc.Load(path);
 
         //1、读取单个节点的数据
         XmlNode node = doc.SelectSingleNode( "PersonF" );
 
         //2、读取多个节点的数据
         XmlNodeList nodeList1 = doc.SelectNodes( "PersonF/person" );
 
         //3.1 读取具体节点的具体值 如:属性为Person2的第二个节点Name的InnerText
         XmlNodeList nodeList = doc.DocumentElement.GetElementsByTagName( "person" );
         foreach  (XmlNode node2 in  nodeList1) //当然也能用nodeList的值
         {
             if  (node2.Attributes[ "Name" ].InnerText == "Person2" )
             {
                 Console.WriteLine(node2.ChildNodes[1].InnerText);
 
             }
         }
 
         //3.2 读取ID为2所在的节点第二个子节点Name的InnerText
         XmlNode node3 = doc.SelectSingleNode( "PersonF/person[ID=2]" );
         string  strNode3 = node3.ChildNodes[1].InnerText;
 
         //3.3利用下面的方法可以找到ID为2的节点
         XmlNodeList nodeList2 = doc.SelectNodes( "//person//ID" );
         XmlNode node4 = null ;
         foreach  (XmlNode node5 in  nodeList2)
         {
             if  (node5.InnerText == "2" )
             {
                 node4 = node5;
                 break ;
             }
         }
         Console.WriteLine(node4.InnerText);
 
         //4、读取节点的属性
         string  Name = node.Attributes[ "Name" ].InnerText;
 
         //5 修改节点的属性
         node.Attributes[ "Name" ].InnerText = "work hard work smart!" ;
         doc.Save(path);
 
         //6 添加自定义的节点
         XmlTextReader reader = new  XmlTextReader(path);
         XmlElement root = doc.DocumentElement; //获取根节点
         XmlElement tagOuter = doc.CreateElement( "person" );
         //设置节点属性
         tagOuter.SetAttribute( "Name" , "Person5" );
         XmlElement tagIN_Name = doc.CreateElement( "Name" );
         XmlElement tagIN_ID = doc.CreateElement( "ID" );
         tagIN_Name.InnerText = "work hard work smart!" ;
         tagIN_ID.InnerText = "32" ;
         tagOuter.AppendChild(tagIN_Name);
         tagOuter.AppendChild(tagIN_ID);
         root.AppendChild(tagOuter); //添加tagOuter到XML文件的最后
         reader.Close();
         doc.Save(path);
     }
     catch  (System.Exception e)
     {
         throw  new  Exception(e.Message);
     }
}

  

下文是对C#对XML的具体操作

如何完成.Net下XML文档的读写操作

C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍

C#中用SelectSingleNode方法解析带有多个命名空间的XML文件

 


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/10/10/2205896.html,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
12 0
|
8月前
|
XML 存储 C#
C#三十 Ado.net和XML
C#三十 Ado.net和XML
38 0
|
4天前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
9 0
|
23天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
26 1
|
2月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
183 2
|
4月前
|
XML C# 数据格式
c# 追加 数据至xml文件
c# 追加 数据至xml文件
22 0
|
4月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
32 0
|
5月前
|
XML C# 图形学
【Unity 3D】C#从XML中写入、读取、修改数据(附源码)
【Unity 3D】C#从XML中写入、读取、修改数据(附源码)
40 0
|
5月前
|
XML 存储 JSON
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)
开发时经常会遇到需要保存配置的情况,最常见的实现方式是将对象序列化成Json,再写入文件并保存到本地磁盘。 本文将使用开源库**ApeFree.DataStore**来替换原有的对象存储过程,实现一个可以随意切换存储方式的对象存储方法。 ApeFree.DataStore是一款可配置的对象存储库,支持在不同平台/介质中对内存中的对象进行存储与还原(如本地存储、注册表存储)。支持配置序列化格式(如Json、Xml),支持配置压缩算法(如GZip、Defalte),支持配置加密算法(如AES、RSA)。
69 0
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)
|
5月前
|
XML 存储 JSON
C# | JSON格式与XML格式互相转换
JSON格式与XML格式是目前互联网上使用最为广泛的数据交换格式之一,而两种格式各自有着自己的特点和优势。 在实际开发中,我们经常需要将数据在不同的系统或模块之间进行传递和转换,而JSON格式和XML格式的互相转换是一项非常基础和必要的技能。 同时,对于需要将数据存储在不同的介质中的应用场景,比如在移动端本地存储数据,或者在服务器端将数据保存到文件或数据库中,也需要将JSON或XML格式进行相应的转换。 因此,熟练掌握JSON与XML格式互相转换的方法对于开发人员来说是非常重要的。在本文中,我们将介绍常用的JSON和XML互相转换的方法及其实现。
60 0
C# | JSON格式与XML格式互相转换