C#中XML解析的增加修改和删除

01添加xml节点  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   private void AddXml(string image, string title)   
   {  
       XmlDocument xmlDoc = new XmlDocument();  
       xmlDoc.Load(Server.MapPath("../flash/dati.xml"));  
       XmlNode root = xmlDoc.SelectSingleNode("images");//查找<images>  
       XmlElement xe1 = xmlDoc.CreateElement("thumb");//创建一个<thumb>节点  
       xe1.SetAttribute("displayNum""6");//设置该节点displayNum属性  
       xe1.SetAttribute("separation""5");//设置该节点separation属性  
       XmlElement xesub1 = xmlDoc.CreateElement("image");  
       xesub1.InnerText = image;//设置文本节点  
       xe1.AppendChild(xesub1);//添加到thumb节点中  
       XmlElement xesub2 = xmlDoc.CreateElement("description");  
       xesub2.InnerText = title;  
       xe1.AppendChild(xesub2);  
       root.AppendChild(xe1);//添加到<images>节点中  
       xmlDoc.Save(Server.MapPath("../flash/dati.xml"));  
   }  

  02删除节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void DelXml(string image)  
   {  
       XmlDocument xmlDoc = new XmlDocument();  
       xmlDoc.Load(Server.MapPath("../flash/dati.xml"));  
   
       XmlNodeList xnl = xmlDoc.SelectSingleNode("images").ChildNodes; //查找节点  
          
       foreach (XmlNode xn in xnl)  
       {  
           XmlElement xe = (XmlElement)xn;  
           if (xe.InnerText.IndexOf(image,0) >= 0)  
           {  
               xn.ParentNode.RemoveChild(xn);  
              // xn.RemoveAll();  
           }  
       }  
       xmlDoc.Save(Server.MapPath("../flash/dati.xml"));  
   }  

  03修改节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
foreach(XmlNode xn in nodeList)//遍历所有子节点  
  {  
   XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型  
   if(xe.GetAttribute("genre")=="")// 判读条件  
   {  
    xe.SetAttribute("genre",newStr);//则修改该属性为newstr   
    XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点  
    foreach(XmlNode xn1 in nls)//遍历  
    {  
     XmlElement xe2=(XmlElement)xn1;//转换类型  
     if(xe2.Name=="author")//如果找到 //判读条件  
     {  
      xe2.InnerText=newText;//则修改   
      break;//找到退出来就可以了  
     }  
    }  
    break;  
   }  

  

posted @   一场夜雨  阅读(209)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
点击右上角即可分享
微信分享提示