xml read write modify (转)
            今天偶然看到这么一帖,觉得有些地方还挺有用的,转一下,不管别人同意不了,估计他也不能知道,哈哈!
 using System;
using System; 
 using System.Collections;
using System.Collections; 
 using System.ComponentModel;
using System.ComponentModel; 
 using System.Data;
using System.Data; 
 using System.Drawing;
using System.Drawing; 
 using System.Web;
using System.Web; 
 using System.Web.SessionState;
using System.Web.SessionState; 
 using System.Web.UI;
using System.Web.UI; 
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls; 
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls; 
 using System.Xml;
using System.Xml; 
 private XmlDocument xmlDoc;
private XmlDocument xmlDoc; 

 //load xml file
//load xml file 
 private void LoadXml()
private void LoadXml() 
 {
{ 
 xmlDoc=new XmlDocument();
xmlDoc=new XmlDocument(); 
 xmlDoc.Load(Server.MapPath("User.xml"));
xmlDoc.Load(Server.MapPath("User.xml")); 
 }
} 


 //添加节点
//添加节点 
 private void AddElement()
private void AddElement() 
 {
{ 

 LoadXml();
LoadXml(); 

 XmlNode xmldocSelect=xmlDoc.SelectSingleNode("user");
XmlNode xmldocSelect=xmlDoc.SelectSingleNode("user"); 

 XmlElement el=xmlDoc.CreateElement("person"); //添加person节点
XmlElement el=xmlDoc.CreateElement("person"); //添加person节点 
 el.SetAttribute("name","风云"); //添加person节点的属性"name"
el.SetAttribute("name","风云"); //添加person节点的属性"name" 
 el.SetAttribute("sex","女"); //添加person节点的属性 "sex"
el.SetAttribute("sex","女"); //添加person节点的属性 "sex" 
 el.SetAttribute("age","25"); //添加person节点的属性 "age"
el.SetAttribute("age","25"); //添加person节点的属性 "age" 

 XmlElement xesub1=xmlDoc.CreateElement("pass"); //添加person节点的里的节点
XmlElement xesub1=xmlDoc.CreateElement("pass"); //添加person节点的里的节点 
 xesub1.InnerText="123";//设置文本节点
xesub1.InnerText="123";//设置文本节点 
 el.AppendChild(xesub1);
el.AppendChild(xesub1); 
 XmlElement xesub2=xmlDoc.CreateElement("Address");
XmlElement xesub2=xmlDoc.CreateElement("Address"); 
 xesub2.InnerText="昆明";//设置文本节点
xesub2.InnerText="昆明";//设置文本节点 
 el.AppendChild(xesub2);
el.AppendChild(xesub2); 

 xmldocSelect.AppendChild(el);
xmldocSelect.AppendChild(el); 
 xmlDoc.Save(Server.MapPath("user.xml"));
xmlDoc.Save(Server.MapPath("user.xml")); 


 }
} 




 //修改节点
//修改节点 
 private void UpdateElement()
private void UpdateElement() 
 {
{ 
 LoadXml();
LoadXml(); 
 XmlNodeList nodeList=xmlDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点
XmlNodeList nodeList=xmlDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点 
 foreach(XmlNode xn in nodeList)//遍历所有子节点
foreach(XmlNode xn in nodeList)//遍历所有子节点 
 {
{ 
 XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 
 if(xe.GetAttribute("name")=="风云")//如果name属性值为“风云”
if(xe.GetAttribute("name")=="风云")//如果name属性值为“风云” 
 {
{ 
 xe.SetAttribute("name","发明");
xe.SetAttribute("name","发明"); 


 //如果下面有子节点在下走
//如果下面有子节点在下走 
 XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 
 foreach(XmlNode xn1 in nls)//遍历
foreach(XmlNode xn1 in nls)//遍历 
 {
{ 
 XmlElement xe2=(XmlElement)xn1;//转换类型
XmlElement xe2=(XmlElement)xn1;//转换类型 
 if(xe2.Name=="pass")//如果找到
if(xe2.Name=="pass")//如果找到 
 {
{ 
 xe2.InnerText="66666";//则修改
xe2.InnerText="66666";//则修改 
 break;
break; 

 }
} 
 }
} 

 break;
break; 
 }
} 
 }
} 
 xmlDoc.Save(Server.MapPath("user.xml"));//保存
xmlDoc.Save(Server.MapPath("user.xml"));//保存 
 }
} 


 //删出节点
//删出节点 
 private void deleteNode()
private void deleteNode() 
 {
{ 

 LoadXml();
LoadXml(); 
 XmlNodeList xnl=xmlDoc.SelectSingleNode("user").ChildNodes;
XmlNodeList xnl=xmlDoc.SelectSingleNode("user").ChildNodes; 

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

 if(xe.GetAttribute("name")=="发明")
if(xe.GetAttribute("name")=="发明") 
 {
{ 
 //xe.RemoveAttribute("name");//删除name属性
//xe.RemoveAttribute("name");//删除name属性 
 xe.RemoveAll();//删除该节点的全部内容
xe.RemoveAll();//删除该节点的全部内容 


 break;
break; 
 }
} 

 }
} 
 xmlDoc.Save(Server.MapPath("user.xml"));//保存
xmlDoc.Save(Server.MapPath("user.xml"));//保存 
 }
} 

 private void showIt()
private void showIt() 
 {
{ 
 LoadXml();
LoadXml(); 
 XmlNode xn=xmlDoc.SelectSingleNode("user");
XmlNode xn=xmlDoc.SelectSingleNode("user"); 

 XmlNodeList xnl=xn.ChildNodes;
XmlNodeList xnl=xn.ChildNodes; 

 foreach(XmlNode xnf in xnl)
foreach(XmlNode xnf in xnl) 
 {
{ 
 XmlElement xe=(XmlElement)xnf;
XmlElement xe=(XmlElement)xnf; 
 // Console.WriteLine(xe.GetAttribute("name"));//显示属性值
// Console.WriteLine(xe.GetAttribute("name"));//显示属性值 
 // Console.WriteLine(xe.GetAttribute("sex"));
// Console.WriteLine(xe.GetAttribute("sex")); 
 //
// 
 // XmlNodeList xnf1=xe.ChildNodes;
// XmlNodeList xnf1=xe.ChildNodes; 
 // foreach(XmlNode xn2 in xnf1)
// foreach(XmlNode xn2 in xnf1) 
 // {
// { 
 // Console.WriteLine(xn2.InnerText);//显示子节点点文本
// Console.WriteLine(xn2.InnerText);//显示子节点点文本 
 // }
// } 

 }
} 

 }
} 
 
 <?xml version="1.0" encoding="gb2312"?>
<?xml version="1.0" encoding="gb2312"?> 
 <user>
<user> 
 <person>
  <person> 
 </person>
  </person> 
 <person name="风拉" sex="男" age="25">
  <person name="风拉" sex="男" age="25"> 
 <pass>123</pass>
    <pass>123</pass> 
 <Address>大明</Address>
    <Address>大明</Address> 
 </person>
  </person> 
 <person name="风云" sex="女" age="25">
  <person name="风云" sex="女" age="25"> 
 <pass>123</pass>
    <pass>123</pass> 
 <Address>昆明</Address>
    <Address>昆明</Address> 
 </person>
  </person> 
 </user>
</user> 
 
 using System;
using System;  using System.Collections;
using System.Collections;  using System.ComponentModel;
using System.ComponentModel;  using System.Data;
using System.Data;  using System.Drawing;
using System.Drawing;  using System.Web;
using System.Web;  using System.Web.SessionState;
using System.Web.SessionState;  using System.Web.UI;
using System.Web.UI;  using System.Web.UI.WebControls;
using System.Web.UI.WebControls;  using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;  using System.Xml;
using System.Xml;  private XmlDocument xmlDoc;
private XmlDocument xmlDoc; 
 //load xml file
//load xml file  private void LoadXml()
private void LoadXml()  {
{  xmlDoc=new XmlDocument();
xmlDoc=new XmlDocument();  xmlDoc.Load(Server.MapPath("User.xml"));
xmlDoc.Load(Server.MapPath("User.xml"));  }
} 

 //添加节点
//添加节点  private void AddElement()
private void AddElement()  {
{ 
 LoadXml();
LoadXml(); 
 XmlNode xmldocSelect=xmlDoc.SelectSingleNode("user");
XmlNode xmldocSelect=xmlDoc.SelectSingleNode("user"); 
 XmlElement el=xmlDoc.CreateElement("person"); //添加person节点
XmlElement el=xmlDoc.CreateElement("person"); //添加person节点  el.SetAttribute("name","风云"); //添加person节点的属性"name"
el.SetAttribute("name","风云"); //添加person节点的属性"name"  el.SetAttribute("sex","女"); //添加person节点的属性 "sex"
el.SetAttribute("sex","女"); //添加person节点的属性 "sex"  el.SetAttribute("age","25"); //添加person节点的属性 "age"
el.SetAttribute("age","25"); //添加person节点的属性 "age" 
 XmlElement xesub1=xmlDoc.CreateElement("pass"); //添加person节点的里的节点
XmlElement xesub1=xmlDoc.CreateElement("pass"); //添加person节点的里的节点  xesub1.InnerText="123";//设置文本节点
xesub1.InnerText="123";//设置文本节点  el.AppendChild(xesub1);
el.AppendChild(xesub1);  XmlElement xesub2=xmlDoc.CreateElement("Address");
XmlElement xesub2=xmlDoc.CreateElement("Address");  xesub2.InnerText="昆明";//设置文本节点
xesub2.InnerText="昆明";//设置文本节点  el.AppendChild(xesub2);
el.AppendChild(xesub2); 
 xmldocSelect.AppendChild(el);
xmldocSelect.AppendChild(el);  xmlDoc.Save(Server.MapPath("user.xml"));
xmlDoc.Save(Server.MapPath("user.xml")); 

 }
} 



 //修改节点
//修改节点  private void UpdateElement()
private void UpdateElement()  {
{  LoadXml();
LoadXml();  XmlNodeList nodeList=xmlDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点
XmlNodeList nodeList=xmlDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点  foreach(XmlNode xn in nodeList)//遍历所有子节点
foreach(XmlNode xn in nodeList)//遍历所有子节点  {
{  XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型  if(xe.GetAttribute("name")=="风云")//如果name属性值为“风云”
if(xe.GetAttribute("name")=="风云")//如果name属性值为“风云”  {
{  xe.SetAttribute("name","发明");
xe.SetAttribute("name","发明"); 

 //如果下面有子节点在下走
//如果下面有子节点在下走  XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点  foreach(XmlNode xn1 in nls)//遍历
foreach(XmlNode xn1 in nls)//遍历  {
{  XmlElement xe2=(XmlElement)xn1;//转换类型
XmlElement xe2=(XmlElement)xn1;//转换类型  if(xe2.Name=="pass")//如果找到
if(xe2.Name=="pass")//如果找到  {
{  xe2.InnerText="66666";//则修改
xe2.InnerText="66666";//则修改  break;
break; 
 }
}  }
} 
 break;
break;  }
}  }
}  xmlDoc.Save(Server.MapPath("user.xml"));//保存
xmlDoc.Save(Server.MapPath("user.xml"));//保存  }
} 

 //删出节点
//删出节点  private void deleteNode()
private void deleteNode()  {
{ 
 LoadXml();
LoadXml();  XmlNodeList xnl=xmlDoc.SelectSingleNode("user").ChildNodes;
XmlNodeList xnl=xmlDoc.SelectSingleNode("user").ChildNodes; 
 foreach(XmlNode xn in xnl)
foreach(XmlNode xn in xnl)  {
{  XmlElement xe=(XmlElement)xn;
XmlElement xe=(XmlElement)xn; 
 if(xe.GetAttribute("name")=="发明")
if(xe.GetAttribute("name")=="发明")  {
{  //xe.RemoveAttribute("name");//删除name属性
//xe.RemoveAttribute("name");//删除name属性  xe.RemoveAll();//删除该节点的全部内容
xe.RemoveAll();//删除该节点的全部内容 

 break;
break;  }
} 
 }
}  xmlDoc.Save(Server.MapPath("user.xml"));//保存
xmlDoc.Save(Server.MapPath("user.xml"));//保存  }
} 
 private void showIt()
private void showIt()  {
{  LoadXml();
LoadXml();  XmlNode xn=xmlDoc.SelectSingleNode("user");
XmlNode xn=xmlDoc.SelectSingleNode("user"); 
 XmlNodeList xnl=xn.ChildNodes;
XmlNodeList xnl=xn.ChildNodes; 
 foreach(XmlNode xnf in xnl)
foreach(XmlNode xnf in xnl)  {
{  XmlElement xe=(XmlElement)xnf;
XmlElement xe=(XmlElement)xnf;  // Console.WriteLine(xe.GetAttribute("name"));//显示属性值
// Console.WriteLine(xe.GetAttribute("name"));//显示属性值  // Console.WriteLine(xe.GetAttribute("sex"));
// Console.WriteLine(xe.GetAttribute("sex"));  //
//  // XmlNodeList xnf1=xe.ChildNodes;
// XmlNodeList xnf1=xe.ChildNodes;  // foreach(XmlNode xn2 in xnf1)
// foreach(XmlNode xn2 in xnf1)  // {
// {  // Console.WriteLine(xn2.InnerText);//显示子节点点文本
// Console.WriteLine(xn2.InnerText);//显示子节点点文本  // }
// } 
 }
} 
 }
} 
 <?xml version="1.0" encoding="gb2312"?>
<?xml version="1.0" encoding="gb2312"?>  <user>
<user>  <person>
  <person>  </person>
  </person>  <person name="风拉" sex="男" age="25">
  <person name="风拉" sex="男" age="25">  <pass>123</pass>
    <pass>123</pass>  <Address>大明</Address>
    <Address>大明</Address>  </person>
  </person>  <person name="风云" sex="女" age="25">
  <person name="风云" sex="女" age="25">  <pass>123</pass>
    <pass>123</pass>  <Address>昆明</Address>
    <Address>昆明</Address>  </person>
  </person>  </user>
</user> 
 
                    
                     
                    
                 
                    
                


 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号