C#操作xml文件入门

在项目中新建一个xml文件(PersonalResume.xml)如下:

<? xml version = " 1.0 "  encoding = " utf-8 "   ?>
< PersonalResume >
  
< Resume genre = " fantasy "  ISBN = " 2-3631-4 " >
    
< title > 农凤新个人简历 </ title >
    
< Name > Sissy </ Name >
    
< Address > 北京市宣武区马连道 </ Address >
    
< Email > nongfengxin@ 163 .com </ Email >
    
< Phone > 12345678 </ Phone >
  
</ Resume >
</ PersonalResume >

 第一:往<PersonalResume>节点中插入一个<Resume>节点:

             string  xmlFilePath  =  Server.MapPath( " XML/PersonalResume.xml " );
            XmlDocument xmlDoc 
=   new  XmlDocument();
            xmlDoc.Load(xmlFilePath);
            XmlNode root 
=  xmlDoc.SelectSingleNode( " PersonalResume " ); // 查找<PersonalResume>
            XmlElement xe1  =  xmlDoc.CreateElement( " Resume " ); // 创建一个<Resume>节点
            xe1.SetAttribute( " genre " " 冯瑞涛 " ); // 设置该节点genre属性
            xe1.SetAttribute( " ISBN " " 2-3631-4 " ); // 设置该节点ISBN属性

            XmlElement xesub1 
=  xmlDoc.CreateElement( " title " );
            xesub1.InnerText 
=   " 冯瑞涛个人简历 " ; // 设置文本节点
            xe1.AppendChild(xesub1); // 添加到<PersonalResume>节点中
            XmlElement xesub2  =  xmlDoc.CreateElement( " Name " );
            xesub2.InnerText 
=   " Anny " ;
            xe1.AppendChild(xesub2);
            XmlElement xesub3 
=  xmlDoc.CreateElement( " Address " );
            xesub3.InnerText 
=   " 北京市海淀区 " ;
            xe1.AppendChild(xesub3);

            XmlElement xesub4 
=  xmlDoc.CreateElement( " Email " );
            xesub4.InnerText 
=   " nongfengxin@gmail.com " ;
            xe1.AppendChild(xesub4);
            XmlElement xesub5 
=  xmlDoc.CreateElement( " Phone " );
            xesub5.InnerText 
=   " 12345667 " ;
            xe1.AppendChild(xesub5);

            root.AppendChild(xe1);
// 添加到<Resume>节点中
            xmlDoc.Save(xmlFilePath);

 第二:修改节点:将genre属性值为“冯瑞涛“的节点的genre值改为“update冯瑞涛”,将该节点的子节点<Name>的文本修改为“Lily”。

   XmlNodeList nodeList  =  xmlDoc.SelectSingleNode( " PersonalResume " ).ChildNodes; // 获取PersonalResume节点的所有子节点
             foreach  (XmlNode xn  in  nodeList) // 遍历所有子节点
            {
                XmlElement xe 
=  (XmlElement)xn; // 将子节点类型转换为XmlElement类型
                 if  (xe.GetAttribute( " genre " ==   "冯瑞涛 " ) // 如果genre属性值为“冯瑞涛”
                {
                    xe.SetAttribute(
" genre " " update冯瑞涛 " ); // 则修改该属性为“update冯瑞涛” 

                    XmlNodeList nls 
=  xe.ChildNodes; // 继续获取xe子节点的所有子节点
                     foreach  (XmlNode xn1  in  nls) // 遍历
                    {
                        XmlElement xe2 
=  (XmlElement)xn1; // 转换类型
                         if  (xe2.Name  ==   " Name " ) // 如果找到
                        {
                            xe2.InnerText 
=   " Lily " ; // 则修改
                             break ; // 找到退出来就可以了
                        }
                    }
                    
break ;
                }
            }

            xmlDoc.Save(xmlFilePath);
// 保存。

第三:删除 <Resume genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <Resume genre="update冯瑞涛" ISBN="2-3631-4">节点。

 XmlNodeList xnl  =  xmlDoc.SelectSingleNode( " PersonalResume " ).ChildNodes;

            
foreach  (XmlNode xn  in  xnl)
            {
                XmlElement xe 
=  (XmlElement)xn;


                
if  (xe.GetAttribute( " genre " ==   " fantasy " )
                {
                    xe.RemoveAttribute(
" genre " ); // 删除genre属性
                }
                
else   if  (xe.GetAttribute( " genre " ==   " update冯瑞涛 " )
                {
                    xe.RemoveAll();
// 删除该节点的全部内容
                }
            }
            xmlDoc.Save(xmlFilePath);

第四:显示所有数据

   XmlNode xno  =  xmlDoc.SelectSingleNode( " PersonalResume " );

            XmlNodeList xnp 
=  xno.ChildNodes;

            
foreach  (XmlNode xnf  in  xnl)
            {
                XmlElement xe 
=  (XmlElement)xnf;
                Console.WriteLine(xe.GetAttribute(
" genre " )); // 显示属性值
                Console.WriteLine(xe.GetAttribute( " ISBN " ));

                XmlNodeList xnf1 
=  xe.ChildNodes;
                
foreach  (XmlNode xn2  in  xnf1)
                {
                    Console.WriteLine(xn2.InnerText);
// 显示子节点点文本
                }
            }

 源代码下载:/Files/SissyNong/XMLTest.rar

转载于:https://www.cnblogs.com/SissyNong/archive/2009/09/24/1573491.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值