秋天是沉甸甸的季节,秋天是收获的季节。秋天,写着收获,秋天,写着相思。秋天,比冬天更有生机勃勃的景象,白雪皑皑的冬天固然可爱,但是,瓜果飘香的金秋却更富有灿烂绚丽的色彩。
/********************************************************************************** *
*功能说明:XML处理基类
*作者:刘功勋;
*版本:V0.1(C#2.0);时间:2006-12-13
*
********************************************************************************/
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.IO;
usingSystem.Xml;
usingSystem.Text;
usingMSXML2;
namespaceEC
{
///<summary>
///XML操作基类
///</summary>
publicclassXmlObject:IDisposable
{
//以下为单一功能的静态类 #region读取XML到DataSet
/**************************************************
*函数名称:GetXml(stringXmlPath)
*功能说明:读取XML到DataSet
*参数:XmlPath:xml文档路径
*使用示列:
*usingEC;//引用命名空间
*stringxmlPath=Server.MapPath("/EBDnsConfig/DnsConfig.xml");//获取xml路径
*DataSetds=EC.XmlObject.GetXml(xmlPath);//读取xml到DataSet中
************************************************/
///<summary>
///功能:读取XML到DataSet中
///</summary>
///<paramname="XmlPath">xml路径</param>
///<returns>DataSet</returns>
publicstaticDataSetGetXml(stringXmlPath)
{
DataSetds=newDataSet();
ds.ReadXml(@XmlPath);
returnds;
}
#endregion #region读取xml文档并返回一个节点
/**************************************************
*函数名称:ReadXmlReturnNode(stringXmlPath,stringNode)
*功能说明:读取xml文档并返回一个节点:适用于一级节点
*参数:XmlPath:xml文档路径;Node返回的节点名称
*适应用Xml:<?xmlversion="1.0"encoding="utf-8"?>
*<root>
*<dns1>ns1.everdns.com</dns1>
*</root>
*使用示列:
*usingEC;//引用命名空间
*stringxmlPath=Server.MapPath("/EBDnsConfig/DnsConfig.xml");//获取xml路径
*Response.Write(XmlObject.ReadXmlReturnNode(xmlPath,"mailmanager"));
************************************************/
///<summary>
///读取xml文档并返回一个节点:适用于一级节点
///</summary>
///<paramname="XmlPath">xml路径</param>
///<paramname="NodeName">节点</param>
///<returns></returns>
publicstaticstringReadXmlReturnNode(stringXmlPath,stringNode)
{
XmlDocumentdocXml=newXmlDocument();
docXml.Load(@XmlPath);
XmlNodeListxn=docXml.GetElementsByTagName(Node);
returnxn.Item(0).InnerText.ToString();
}
#endregion #region查找数据,返回一个DataSet
/**************************************************
*函数名称:GetXmlData(stringxmlPath,stringXmlPathNode)
*功能说明:查找数据,返回当前节点的所有下级节点,填充到一个DataSet中
*参数:xmlPath:xml文档路径;XmlPathNode:当前节点的路径
*使用示列:
*usingEC;//引用命名空间
*stringxmlPath=Server.MapPath("/EBDomainConfig/DomainConfig.xml");//获取xml路径
*DataSetds=newDataSet();
*ds=XmlObject.GetXmlData(xmlPath,"root/items");//读取当前路径
*this.GridView1.DataSource=ds;
*this.GridView1.DataBind();
*ds.Clear();
*ds.Dispose();
*Xml示例:
*<?xmlversion="1.0"encoding="utf-8"?>
*<root>
*<itemsname="xinnet">
*<url>http://www.paycenter.com.cn/cgi-bin/</url>
*<port>80</port>
*</items>
*</root>
************************************************/
///<summary>
///查找数据,返回当前节点的所有下级节点,填充到一个DataSet中
///</summary>
///<paramname="xmlPath">xml文档路径</param>
///<paramname="XmlPathNode">节点的路径:根节点/父节点/当前节点</param>
///<returns></returns>
publicstaticDataSetGetXmlData(stringxmlPath,stringXmlPathNode)
{
XmlDocumentobjXmlDoc=newXmlDocument();
objXmlDoc.Load(xmlPath);
DataSetds=newDataSet();
StringReaderread=newStringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
ds.ReadXml(read);
returnds;
}
#endregion #region更新Xml节点内容
/**************************************************
*函数名称:XmlNodeReplace(stringxmlPath,stringNode,stringContent)
*功能说明:更新Xml节点内容
*参数:xmlPath:xml文档路径;Node:当前节点的路径;Content:内容
*使用示列:
*usingEC;//引用命名空间
*stringxmlPath=Server.MapPath("/EBDomainConfig/DomainConfig.xml");//获取xml路径
*XmlObject.XmlNodeReplace(xmlPath,"root/test","56789");//更新节点内容
************************************************/
///<summary>
///更新Xml节点内容
///</summary>
///<paramname="xmlPath">xml路径</param>
///<paramname="Node">要更换内容的节点:节点路径根节点/父节点/当前节点</param>
///<paramname="Content">新的内容</param>
publicstaticvoidXmlNodeReplace(stringxmlPath,stringNode,stringContent)
{
XmlDocumentobjXmlDoc=newXmlDocument();
objXmlDoc.Load(xmlPath);
objXmlDoc.SelectSingleNode(Node).InnerText=Content;
objXmlDoc.Save(xmlPath); } #endregion #region删除XML节点和此节点下的子节点
/**************************************************
*函数名称:XmlNodeDelete(stringxmlPath,stringNode)
*功能说明:删除XML节点和此节点下的子节点
*参数:xmlPath:xml文档路径;Node:当前节点的路径;
*使用示列:
*usingEC;//引用命名空间
*stringxmlPath=Server.MapPath("/EBDomainConfig/DomainConfig.xml");//获取xml路径
*XmlObject.XmlNodeDelete(xmlPath,"root/test");//删除当前节点
************************************************/
///<summary>
///删除XML节点和此节点下的子节点
///</summary>
///<paramname="xmlPath">xml文档路径</param>
///<paramname="Node">节点路径</param>
publicstaticvoidXmlNodeDelete(stringxmlPath,stringNode)
{
XmlDocumentobjXmlDoc=newXmlDocument();
objXmlDoc.Load(xmlPath);
stringmainNode=Node.Substring(0,Node.LastIndexOf("/"));
objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
objXmlDoc.Save(xmlPath);
} #endregion #region插入一个节点和此节点的字节点
/**************************************************
*函数名称:XmlInsertNode(stringxmlPath,stringMailNode,stringChildNode,stringElement,stringContent)
*功能说明:插入一个节点和此节点的字节点
*参数:xmlPath:xml文档路径;MailNode:当前节点的路径;ChildNode:新插入的节点;Element:插入节点的子节点;Content:子节点的内容
*使用示列:
*usingEC;//引用命名空间
*stringxmlPath=Server.MapPath("/EBDomainConfig/DomainConfig.xml");//获取xml路径
*XmlObject.XmlInsertNode(xmlPath,"root/test","test1","test2","测试内容");//插入一个节点和此节点的字节点
*生成的XML格式为
*<test>
*<test1>
*<test2>测试内容</test2>
*</test1>
*</test>
************************************************/
///<summary>
///插入一个节点和此节点的字节点
///</summary>
///<paramname="xmlPath">xml路径</param>
///<paramname="MailNode">当前节点路径</param>
///<paramname="ChildNode">新插入节点</param>
///<paramname="Element">插入节点的子节点</param>
///<paramname="Content">子节点的内容</param>
publicstaticvoidXmlInsertNode(stringxmlPath,stringMailNode,stringChildNode,stringElement,stringContent)
{
XmlDocumentobjXmlDoc=newXmlDocument();
objXmlDoc.Load(xmlPath);
XmlNodeobjRootNode=objXmlDoc.SelectSingleNode(MailNode);
XmlElementobjChildNode=objXmlDoc.CreateElement(ChildNode);
objRootNode.AppendChild(objChildNode);
XmlElementobjElement=objXmlDoc.CreateElement(Element);
objElement.InnerText=Content;
objChildNode.AppendChild(objElement);
objXmlDoc.Save(xmlPath);
} #endregion #region插入一节点,带一属性
/**************************************************
*函数名称:XmlInsertElement(stringxmlPath,stringMainNode,stringElement,stringAttrib,stringAttribContent,stringContent)
*功能说明:插入一节点,带一属性
*参数:xmlPath:xml文档路径;MailNode:当前节点的路径;Element:新插入的节点;Attrib:属性名称;AttribContent:属性值;Content:节点的内容
*使用示列:
*usingEC;//引用命名空间
*stringxmlPath=Server.MapPath("/EBDomainConfig/DomainConfig.xml");//获取xml路径
*XmlObject.XmlInsertElement(xmlPath,"root/test","test1","Attrib","属性值","节点内容");//插入一节点,带一属性
*生成的XML格式为
*<test>
*<test1Attrib="属性值">节点内容</test1>
*</test>
************************************************/
///<summary>
///插入一节点,带一属性
///</summary>
///<paramname="xmlPath">Xml文档路径</param>
///<paramname="MainNode">当前节点路径</param>
///<paramname="Element">新节点</param>
///<paramname="Attrib">属性名称</param>
///<paramname="AttribContent">属性值</param>
///<paramname="Content">新节点值</param>
publicstaticvoidXmlInsertElement(stringxmlPath,stringMainNode,stringElement,stringAttrib,stringAttribContent,stringContent)
{
XmlDocumentobjXmlDoc=newXmlDocument();
objXmlDoc.Load(xmlPath);
XmlNodeobjNode=objXmlDoc.SelectSingleNode(MainNode);
XmlElementobjElement=objXmlDoc.CreateElement(Element);
objElement.SetAttribute(Attrib,AttribContent);
objElement.InnerText=Content;
objNode.AppendChild(objElement);
objXmlDoc.Save(xmlPath);
} #endregion #region插入一节点不带属性
/**************************************************
*函数名称:XmlInsertElement(stringxmlPath,stringMainNode,stringElement,stringContent)
*功能说明:插入一节点不带属性
*参数:xmlPath:xml文档路径;MailNode:当前节点的路径;Element:新插入的节点;Content:节点的内容
*使用示列:
*usingEC;//引用命名空间
*stringxmlPath=Server.MapPath("/EBDomainConfig/DomainConfig.xml");//获取xml路径
*XmlObject.XmlInsertElement(xmlPath,"root/test","text1","节点内容");//插入一节点不带属性
*生成的XML格式为
*<test>
*<text1>节点内容</text1>
*</test>
************************************************/
publicstaticvoidXmlInsertElement(stringxmlPath,stringMainNode,stringElement,stringContent)
{
XmlDocumentobjXmlDoc=newXmlDocument();
objXmlDoc.Load(xmlPath);
XmlNodeobjNode=objXmlDoc.SelectSingleNode(MainNode);
XmlElementobjElement=objXmlDoc.CreateElement(Element);
objElement.InnerText=Content;
objNode.AppendChild(objElement);
objXmlDoc.Save(xmlPath);
} #endregion
//必须创建对象才能使用的类 privatebool_alreadyDispose=false;
privatestringxmlPath;
privateXmlDocumentxmlDoc=newXmlDocument(); privateXmlNodexmlNode;
privateXmlElementxmlElem; #region构造与释构
publicXmlObject()
{ }
~XmlObject()
{
Dispose();
}
protectedvirtualvoidDispose(boolisDisposing)
{
if(_alreadyDispose)return;
if(isDisposing)
{
//
}
_alreadyDispose=true;
}
#endregion #regionIDisposable成员 publicvoidDispose()
{
Dispose(true);
GC.SuppressFinalize(this);
} #endregion
12下一页阅读全文
到此这篇关于Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页就介绍到这了。勤奋可以弥补聪明的不足,但聪明无法弥补懒惰的缺陷。更多相关Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!