.net技术-巴黎冬天  
/**//// <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>
posted on 2007-08-13 16:42  巴黎冬天  阅读(540)  评论(1)    收藏  举报