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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值