C#如何[添加][删除][修改]XML中的记录

XML:如下  
  <?xml   version="1.0"   encoding="utf-8"   ?>  
  <NEWDATA>  
  <DATA>  
  <ID>1</ID>  
  <NAME>user1</NAME>  
  <Explain><![CDATA[此处添加说明...]]></Explain>  
  </DATA>  
  <ID>2</ID>  
  <NAME>user2</NAME>  
  <Explain><![CDATA[此处添加说明...]]></Explain>  
  </DATA>  
  <NEWDATA>  
  问题:  
  1)[删除]<ID>1</ID>的记录并保存  
   
  2)[修改]]<ID>2</ID>记录的  
      <Explain><![CDATA[此处添加说明...]]></Explain>  
      为<Explain><![CDATA[生日:1978-5-8   姓名:哈哈]]></Explain>并保存  
   
  3)我要[添加]一个  
  <DATA>  
  <ID>3</ID>  
  <NAME>user3</NAME>  
  <Explain><![CDATA[生日:   1977-5-8   姓名:FlashApp]]></Explain>  
  </DATA>  
  的记录并保存

  -------------实现代码如下-------------

  XmlDocument   xmldoc   ;  
  XmlNode           xmlnode   ;  
  XmlElement     xmlelem   ;  
  XmlElement     xmlelem1   ;  
  XmlText           xmltext   ;  
  XmlTextWriter   XMLWriter;  
   
  //添加节点  
  //初始化  
  xmldoc   =   new   XmlDocument   ();  
  xmldoc.Load   ("Data.xml");  
  xmlnode   =   xmldoc.DocumentElement;  
  //添加一个名为DATA的子节点  
  xmlelem   =   xmldoc.CreateElement   ("DATA")   ;  
  //此子节点下的元素  
  xmlelem1   =   xmldoc.CreateElement   ("ID")   ;  
  xmltext   =   xmldoc.CreateTextNode   ("3")   ;  
  xmlelem1.AppendChild   (   xmltext   )   ;  
  xmlelem.AppendChild   (   xmlelem1   )   ;  
   
  xmlelem1   =   xmldoc.CreateElement   ("NAME")   ;  
  xmltext   =   xmldoc.CreateTextNode   ("user3")   ;  
  xmlelem1.AppendChild   (   xmltext   )   ;  
  xmlelem.AppendChild   (   xmlelem1   )   ;  
   
  xmlelem1   =   xmldoc.CreateElement   ("Explain")   ;  
  xmltext   =   xmldoc.CreateTextNode   ("><![CDATA[生日:   1977-5-8   姓名:FlashApp]]>")   ;  
  xmlelem1.AppendChild   (   xmltext   )   ;  
  xmlelem.AppendChild   (   xmlelem1   )   ;  
   
  //结束此子节点  
  xmldoc.DocumentElement.AppendChild(xmlelem);  
  //保存  
  xmldoc.Save("Data.xml");  
   
   
  //删除节点  
  XmlDataDocument   dom=new   XmlDataDocument();  
  dom.Load   ("Data.xml");  
  XmlElement   root   =   dom.DocumentElement;  
  XmlNode   node   =   root.SelectSingleNode("//DATA[MID=1]");   //查找要删除的节点  
  if(node   !=   null)//找到了,将其删除  
  {  
          node.RemoveAll();  
  }  
  //保存  
  dom.Save("Data.xml");  
   
   
  //修改就更容易了  
  代码同上,找到要修改的节点后  
  if(node   !=   null)  
  {  
          node["Explain"].InnerText   =   "<![CDATA[生日:1978-5-8   姓名:哈哈]]>"  
  }  
  //保存  
  dom.Save("Data.xml");  

posted @ 2009-02-20 08:47  novel  阅读(629)  评论(0)    收藏  举报