自己写的针对xml操作的类

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

/**/ /// <copyright> 青岛英网咨询技术有限公司1999-2007 </copyright>
/// <version> 1.0 </version>
/// <author> zhangl </author>
/// <email> zhangl@hrbanlv.com </email>
/// <logdate="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>
/// <paramname="strdbname"></param>
/// <paramname="strbackdate"></param>
///

public XmlOperate( string strid, string strdbname, string strbackdate)
... {
this .id = strid;
this .dbname = strdbname;
this .backdate = strbackdate;
}



读xml操作 #region 读xml操作
public DataViewXmlRead()
... {
StreamReadertyj
= new StreamReader(datafile); // 使用streamReader读取数据
XmlDataDocumentdatadoc = new XmlDataDocument(); // 创建该对象为了读取Xml
datadoc.DataSet.ReadXml(tyj); // 使用xmldocument对象把读取的xml数据放到dataset
DataViewdv = datadoc.DataSet.Tables[ 0 ].DefaultView;
datadoc
= null ; // 释放对象占用的资源
tyj.Close();
return dv;
}

#endregion



写xml操作 #region 写xml操作

public bool XmlWrite()
... {

try
... {
if (File.Exists(datafile))
... {
XmlTextReaderxtr
= new XmlTextReader(datafile);
XmlDocumentxd
= new XmlDocument();
xd.Load(xtr);
xtr.Close();
XmlNodexn
= xd.GetElementsByTagName( " baks " ).Item( 0 );
XmlNodexn1
= xd.CreateNode(XmlNodeType.Element, " bak " , "" );
XmlNodexn2
= xd.CreateNode(XmlNodeType.Element, " id " , "" );
xn2.InnerText
= id;
XmlNodexn3
= xd.CreateNode(XmlNodeType.Element, " dbname " , "" );
xn3.InnerText
= dbname;
XmlNodexn4
= 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
... {
FileStreamfs
= File.Create(datafile); // 创建xml文件
fs.Close();
StreamWritersw
= new StreamWriter(datafile, true ,System.Text.Encoding.GetEncoding( " gb2312 " ));
XmlTextReaderxtr
= new XmlTextReader(datafile);
XmlDocumentxd
= new XmlDocument();
xd.Load(xtr);
xtr.Close();
XmlNodexn
= xd.GetElementsByTagName( " baks " ).Item( 0 );
XmlNodexn1
= xd.CreateNode(XmlNodeType.Element, " bak " , "" );
XmlNodexn2
= xd.CreateNode(XmlNodeType.Element, " id " , "" );
xn2.InnerText
= id;
XmlNodexn3
= xd.CreateNode(XmlNodeType.Element, " dbname " , "" );
xn3.InnerText
= dbname;
XmlNodexn4
= 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()
... {
XmlDocumentdocument
= new XmlDocument();
document.Load(datafile);
XmlNodeListnodelist
= document.SelectSingleNode( " baks " ).ChildNodes;
foreach (XmlNodenode in nodelist)
... {
XmlElementxe
= (XmlElement)node; // 将子节点类型转换为XmlElement类型
if (xe.Name == " bak " )
... {
XmlNodeListnls
= xe.ChildNodes;
foreach (XmlNodexn1 in nls)
... {
if (xn1.InnerText == dbname)
... {

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

}

}

}

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

#endregion


}


下面是xml文件的内容:
<? xmlversion="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 >

自己写的针对xml操作的类


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论