您的位置:首页 > 其它

自己写的针对xml操作的类

2007-08-08 11:32 363 查看
在项目中遇到对xml的操作,以前对这方面不太熟,最后在网上看了参考了一下资料,下面是自己写的一个操作xml的类,包含基本的增,删,改,查操作。




/**//// <copyright>青岛英网咨询技术有限公司 1999-2007</copyright>


/// <version>1.0</version>


/// <author>zhangl</author>


/// <email>zhangl@hrbanlv.com</email>


/// <log date="2007-08-06">创建</log>




using System;


using System.Data;


using System.Configuration;


using System.Web;


using System.Web.Security;


using System.Web.UI;


using System.Web.UI.WebControls;


using System.Web.UI.WebControls.WebParts;


using System.Web.UI.HtmlControls;


using System.Xml;


using System.Xml.XPath;


using System.IO;


using System.Data.SqlClient;






/**//// <summary>


/// XmlOperate 的摘要说明


/// </summary>


public class XmlOperate




...{


private string datafile = "";


private string id="";


private string dbname = "";


private string backdate = "";




public string DataFile




...{




set ...{


datafile = value;


}


}


public string ID




...{


set




...{


id = value;


}


}


public string DbName




...{


set




...{


dbname = value;


}


}




public string BackDate




...{


set




...{


backdate = value;


}


}






/**//// <summary>


/// 构造函数


/// </summary>


public XmlOperate()




...{




}






/**//// <summary>


/// 构造带参数的构造函数


/// </summary>


/// <param name="strdbname"></param>


/// <param name="strbackdate"></param>


///


public XmlOperate(string strid,string strdbname, string strbackdate)




...{


this.id = strid;


this.dbname = strdbname;


this.backdate = strbackdate;


}








读xml操作#region 读xml操作


public DataView XmlRead()




...{


StreamReader tyj = new StreamReader(datafile); //使用streamReader读取数据


XmlDataDocument datadoc = new XmlDataDocument();//创建该对象为了读取Xml


datadoc.DataSet.ReadXml(tyj); //使用xmldocument对象把读取的xml数据放到dataset


DataView dv = datadoc.DataSet.Tables[0].DefaultView;


datadoc = null; //释放对象占用的资源


tyj.Close();


return dv;


}


#endregion








写xml操作#region 写xml操作




public bool XmlWrite()




...{




try




...{


if (File.Exists(datafile))




...{


XmlTextReader xtr = new XmlTextReader(datafile);


XmlDocument xd = new XmlDocument();


xd.Load(xtr);


xtr.Close();


XmlNode xn = xd.GetElementsByTagName("baks").Item(0);


XmlNode xn1 = xd.CreateNode(XmlNodeType.Element, "bak", "");


XmlNode xn2 = xd.CreateNode(XmlNodeType.Element, "id", "");


xn2.InnerText = id;


XmlNode xn3 = xd.CreateNode(XmlNodeType.Element, "dbname", "");


xn3.InnerText = dbname;


XmlNode xn4 = xd.CreateNode(XmlNodeType.Element, "backdate", "");


xn4.InnerText = backdate;


xn.AppendChild(xn1);


xn1.AppendChild(xn2);


xn1.AppendChild(xn3);


xn1.AppendChild(xn4);


xd.Save(datafile);


return true;


}


else




...{


FileStream fs = File.Create(datafile);//创建xml文件


fs.Close();


StreamWriter sw = new StreamWriter(datafile, true, System.Text.Encoding.GetEncoding("gb2312"));


XmlTextReader xtr = new XmlTextReader(datafile);


XmlDocument xd = new XmlDocument();


xd.Load(xtr);


xtr.Close();


XmlNode xn = xd.GetElementsByTagName("baks").Item(0);


XmlNode xn1 = xd.CreateNode(XmlNodeType.Element, "bak", "");


XmlNode xn2 = xd.CreateNode(XmlNodeType.Element, "id", "");


xn2.InnerText = id;


XmlNode xn3 = xd.CreateNode(XmlNodeType.Element, "dbname", "");


xn3.InnerText = dbname;


XmlNode xn4 = xd.CreateNode(XmlNodeType.Element, "backdate", "");


xn4.InnerText = backdate;


xn.AppendChild(xn1);


xn1.AppendChild(xn2);


xn1.AppendChild(xn3);


xn1.AppendChild(xn4);


xd.Save(datafile);


return true;


}


}


catch




...{


return false;


}


}


#endregion






删除xml节点操作#region 删除xml节点操作




public void XmlDelete()




...{


XmlDocument document=new XmlDocument();


document.Load(datafile);


XmlNodeList nodelist = document.SelectSingleNode("baks").ChildNodes;


foreach (XmlNode node in nodelist)




...{


XmlElement xe = (XmlElement)node;//将子节点类型转换为XmlElement类型


if (xe.Name == "bak")




...{


XmlNodeList nls = xe.ChildNodes;


foreach (XmlNode xn1 in nls)




...{


if (xn1.InnerText == dbname)




...{




xe.ParentNode.RemoveChild(xe); //移除xe节点--重点


}


}


}


}


document.Save(datafile); //保存xml文件


}


#endregion




}




下面是xml文件的内容:


<?xml version="1.0" encoding="utf-8"?>


<baks>


<bak>


<id>1</id>


<dbname>ehrdb_db_2007080713420096.BAK</dbname>


<backdate>2007.08.07</backdate>


</bak>


<bak>


<id>2</id>


<dbname>ehrdb_db_2007080713402905.BAK</dbname>


<backdate>2007.08.07</backdate>


</bak>


</baks>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: