操作Xml文件

来源:互联网 发布:工作于数据物理层 编辑:程序博客网 时间:2024/05/18 03:27

操作Xml文件有2大类:

一:XmlDocument

定义和显示

XmlDocument xmldoc;         //定义3个对象
XmlNode xmlnode;
XmlElement xmlelem;
    
public void XmlShow()                     //显示XML
{
 XmlDocument xmldoc 
= new XmlDocument();
 xmldoc.Load(Server.MapPath(
"xml1.xml"));
 xm1.Document
=xmldoc;    //asp.net控件asp:Xml
}

 1:写xml文件

xmldoc  =new XmlDocument();

XmlDeclaration xmldecl;               
//输入头
xmldecl =xmldoc.CreateXmlDeclaration("1.0","gb2312",null);
xmldoc.AppendChild(xmldecl);

xmlelem 
= xmldoc.CreateElement("","player","");   //加入根元素
xmldoc.AppendChild(xmlelem);

XmlNode root
=xmldoc.SelectSingleNode("player");
XmlElement xe
=xmldoc.CreateElement("card");
xe.SetAttribute(
"id","1");
xe.SetAttribute(
"sex","");

XmlElement xue1
=xmldoc.CreateElement("name");       //加入节点 xue1
xue1.InnerText="张飞";
xe.AppendChild(xue1);

XmlElement xue2
=xmldoc.CreateElement("send");
xue2.InnerText
="zhangfei@163.com";
xe.AppendChild(xue2);

XmlElement xue3
=xmldoc.CreateElement("Age");
xue3.InnerText
="19";
xe.AppendChild(xue3);

root.AppendChild(xe);

XmlElement xg
=xmldoc.CreateElement("card");            //第二项
xg.SetAttribute("id","2");
xg.SetAttribute(
"sex","");

XmlElement xue4
=xmldoc.CreateElement("name");       //加入节点 xue1
xue4.InnerText="清华";
xg.AppendChild(xue4);

XmlElement xue5
=xmldoc.CreateElement("send");
xue5.InnerText
="qinghua@263.com";
xg.AppendChild(xue5);

XmlElement xue6
=xmldoc.CreateElement("Age");
xue6.InnerText
="30";
xg.AppendChild(xue6);

root.AppendChild(xg);

xmldoc.Save(Server.MapPath(
"xml1.xml"));


XmlShow();                   
//显示

 

2:修改xml文件

xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath(
"xml1.xml"));

XmlNodeList nodelist 
= xmldoc.SelectSingleNode("player").ChildNodes;
foreach(XmlNode xn in nodelist)
 
{
  XmlElement xe
=(XmlElement)xn;
  
if(xe.GetAttribute("id")=="2")
   
{
     xe.SetAttribute(
"id","3");
     XmlNodeList xl 
= xe.ChildNodes;
    
foreach( XmlNode xl1 in xl)
     
{
      XmlElement gt
= (XmlElement)xl1;
      
if(gt.Name=="Age")
       
{
        gt.InnerText
="28";
        }

     }

   }


  }

xmldoc.Save(Server.MapPath(
"xml1.xml"));
XmlShow();  

3:添加

xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath(
"xml1.xml"));

XmlNode root
=xmldoc.SelectSingleNode("player");

XmlElement xq 
=xmldoc.CreateElement("card");
xq.SetAttribute(
"id","4");
xq.SetAttribute(
"sex","");

XmlElement xq1
=xmldoc.CreateElement("name");
xq1.InnerText
="王八";
xq.AppendChild(xq1);

XmlElement xq2
=xmldoc.CreateElement("send");
xq2.InnerText
="wangba@tom.com";
xq.AppendChild(xq2);

root.AppendChild(xq);
xmldoc.Save(Server.MapPath(
"xml1.xml"));
XmlShow();                   
//显示

4:删除节点或属性

xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath(
"xml1.xml"));

XmlNodeList nodelist 
= xmldoc.SelectSingleNode("player").ChildNodes;
foreach(XmlNode xn in nodelist)
  
{
       XmlElement xe
=(XmlElement)xn;
          
if(xe.GetAttribute("id")=="2")
              
{
    xe.RemoveAttribute(
"id");
    xe.RemoveChild(xe.LastChild);       
//删除最后一个节点,参数是int的
              }

}

xmldoc.Save(Server.MapPath(
"xml1.xml"));
XmlShow(); 

二:XmlTextReader和XmlTextWriter(都是基于流的,只写了reader)

XmlTextReader reader;                            //定义
string filename=Server.MapPath("data.xml");
reader
=new XmlTextReader(filename);
try
 
{
  
while(reader.Read())
   
{
    
switch(reader.NodeType)
     
{                        
     
case XmlNodeType.Element:
     Response.Write(Server.HtmlEncode(
"<"+reader.Name+">")+"<br>");
      
break;
     
case XmlNodeType.Text:
     Response.Write(reader.Value
+"<br>");
      
break;
     
case XmlNodeType.CDATA:
     Response.Write(Server.HtmlEncode(
"<![CDATA["+reader.Value+"]]")+"<br>");
      
break;
     
case XmlNodeType.ProcessingInstruction:
     Response.Write(Server.HtmlEncode(
"<?"+reader.Name+"   "+reader.Value+"?>")+"<br>");
      
break;
     
case XmlNodeType.Comment:
     Response.Write(Server.HtmlEncode(
"<!--"+reader.Value+"-->")+"<br>");
      
break;
     
case XmlNodeType.XmlDeclaration:
     Response.Write(Server.HtmlEncode(
"<?xml version='1.0'?>")+"<br>");
      
break;
     
case XmlNodeType.Document:
      
break;
     
case XmlNodeType.DocumentType:
     Response.Write(Server.HtmlEncode(
"<!DOCTYPE "+reader.Name+" ["+reader.Value+"]")+"<br>");
      
break;
     
case XmlNodeType.EntityReference:
     Response.Write(reader.Name
+"<br>");
      
break;
     
case XmlNodeType.EndElement:
     Response.Write(Server.HtmlEncode(
"</"+reader.Name+">")+"<br>");
      
break;
    }
       
   }

}

finally
{
 
if(reader!=null)
 reader.Close();
}
原创粉丝点击