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,如需转载请自行联系原作者

目录
相关文章
|
22天前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
17 0
|
9月前
|
XML 存储 C#
C#三十 Ado.net和XML
C#三十 Ado.net和XML
40 0
|
8天前
|
XML 存储 C#
C# xml文档反序列化记事
本文介绍了使用XmlSerializer进行XML序列化和反序列化的关键点。包括:1) 以独占方式读取XML文件以避免并发问题;2) 当元素名与类型名不一致时,可通过`[XmlArrayItem]`指定元素名,或创建继承自原始类型的子类;3) 处理DateTime反序列化错误,通过中间字符串属性转换;4) 提到了常用C#特性如`[XmlRoot]`, `[XmlElement]`, `[XmlAttribute]`, `[XmlIgnore]`和`[XmlArrayItem]`的作用。
|
22天前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
32 0
|
22天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
64 1
|
22天前
|
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 平台开发而创建。 作
195 2
|
22天前
|
XML C# 数据格式
c# 追加 数据至xml文件
c# 追加 数据至xml文件
26 0
|
22天前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
39 0
|
22天前
|
XML C# 图形学
【Unity 3D】C#从XML中写入、读取、修改数据(附源码)
【Unity 3D】C#从XML中写入、读取、修改数据(附源码)
46 0
|
22天前
|
XML 存储 JSON
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)
开发时经常会遇到需要保存配置的情况,最常见的实现方式是将对象序列化成Json,再写入文件并保存到本地磁盘。 本文将使用开源库**ApeFree.DataStore**来替换原有的对象存储过程,实现一个可以随意切换存储方式的对象存储方法。 ApeFree.DataStore是一款可配置的对象存储库,支持在不同平台/介质中对内存中的对象进行存储与还原(如本地存储、注册表存储)。支持配置序列化格式(如Json、Xml),支持配置压缩算法(如GZip、Defalte),支持配置加密算法(如AES、RSA)。
76 0
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)