/**//// <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>

浙公网安备 33010602011771号