XML 增删查改

直接贴代码

using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Xml;

namespace  Myshop.MyShop
{
    
public   class  XMLEditor
    {
        
///   <summary>
        
///  删除节点
        
///   </summary>
        
///   <param name="xmlPath"></param>
        
///   <param name="id"></param>
        
///   <returns></returns>
         public   static   bool  DeleteNode( string  xmlPath,  string  id)
        {
            XmlDocument xml 
=   new  XmlDocument();             // 新建xml文档
            xml.Load(xmlPath);                               // 载入文件
            XmlNode root  =  xml.SelectSingleNode( " root " );     // 获取根节点    
            XmlNode doc  =   null ;                              // 定义节点
            GetXmlDoc(root, id,  ref  doc);                    // 获取要处理的节点
             if  (doc  !=   null )
            {
                doc.ParentNode.RemoveChild(doc);            
// 删除自己
                xml.Save(xmlPath);                           // 保存
                 return   true ;
            }
            
else
                
return   false ;
        }

        
///   <summary>
        
///  添加新节点
        
///   </summary>
        
///   <param name="xmlPath"></param>
        
///   <param name="level"></param>
        
///   <param name="fatherid"></param>
        
///   <param name="name"></param>
        
///   <returns></returns>
         public   static   bool  AddNode( string  xmlPath,  string  level,  string  fatherid,  string  name)
        {
            XmlDocument xml 
=   new  XmlDocument();
            xml.Load(xmlPath);
            XmlNode root 
=  xml.SelectSingleNode( " root " );
            XmlElement element 
=  xml.CreateElement( " type " );          // 新建节点
            element.SetAttribute( " name " , name);                      // 添加标签
            element.SetAttribute( " level " , level);                   
            element.SetAttribute(
" fatherid " , fatherid);
            XmlNode doc 
=   null ;
            GetXmlDoc(root, fatherid,
ref  doc);
            
if  (doc  !=   null )
            {
                doc.AppendChild(element 
as  XmlNode);                 // 添加child
                xml.Save(xmlPath);
                
return   true ;
            }
            
else
                
return   false ;            
        }

        
///   <summary>
        
///  编辑节点
        
///   </summary>
        
///   <param name="xmlPath"></param>
        
///   <param name="id"></param>
        
///   <param name="level"></param>
        
///   <param name="fatherid"></param>
        
///   <param name="name"></param>
        
///   <returns></returns>
         public   static   bool  EditNode( string  xmlPath,  string  id,  string  level,  string  fatherid,  string  name)
        {
            XmlDocument xml 
=   new  XmlDocument();
            xml.Load(xmlPath);
            XmlNode root 
=  xml.SelectSingleNode( " root " );
            XmlNode doc
= null ;
            GetXmlDoc(root, fatherid,
ref  doc);
            
if  (doc  !=   null )
            {
                XmlElement element 
=  doc  as  XmlElement;              // XmlNode转XmlElement更新
                element.SetAttribute( " id " , id);
                element.SetAttribute(
" name " , name);
                element.SetAttribute(
" level " , level);
                element.SetAttribute(
" fatherid " , fatherid);
                xml.Save(xmlPath);
                
return   true ;
            }
            
else
                
return   false ;
        }

        
///   <summary>
        
///  递归查找节点
        
///   </summary>
        
///   <param name="node"> 起始节点 </param>
        
///   <param name="id"> attr </param>
         private   static   void  GetXmlDoc(XmlNode node, string  id, ref  XmlNode myNode)
        {
            
foreach  (XmlNode xml  in  node.ChildNodes)
            {
                
if  (xml.Attributes[ " id " ].Value  ==  id)
                    myNode 
=  xml;
                
else
                    GetXmlDoc(xml, id, 
ref  myNode);
            }
        }
    }
}
Code

你可能感兴趣的:(xml)