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

目录
相关文章
|
6月前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
|
XML 存储 C#
C#三十 Ado.net和XML
C#三十 Ado.net和XML
60 0
|
2月前
|
XML JSON 数据处理
C# 中的 XML 与 JSON 数据处理
在现代软件开发中,数据交换和存储需求日益增长,XML 和 JSON 成为最常用的数据格式。本文从 C# 角度出发,详细介绍如何处理这两种格式,并提供示例代码。对于 XML,我们介绍了读取、创建和写入 XML 文件的方法;对于 JSON,则展示了如何使用 Newtonsoft.Json 库进行数据解析和序列化。此外,文章还总结了常见问题及其解决方案,帮助开发者更好地应对实际项目中的挑战。
180 61
C# 中的 XML 与 JSON 数据处理
|
1月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
96 0
|
1月前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
382 0
|
6月前
|
XML 存储 C#
C# xml文档反序列化记事
本文介绍了使用XmlSerializer进行XML序列化和反序列化的关键点。包括:1) 以独占方式读取XML文件以避免并发问题;2) 当元素名与类型名不一致时,可通过`[XmlArrayItem]`指定元素名,或创建继承自原始类型的子类;3) 处理DateTime反序列化错误,通过中间字符串属性转换;4) 提到了常用C#特性如`[XmlRoot]`, `[XmlElement]`, `[XmlAttribute]`, `[XmlIgnore]`和`[XmlArrayItem]`的作用。
|
6月前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
96 1
|
6月前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
108 0
|
6月前
|
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 平台开发而创建。 作
310 2
|
6月前
|
XML C# 数据格式
c# 追加 数据至xml文件
c# 追加 数据至xml文件
41 0