手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页
Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页
摘要:/*********************************************************************...

/**********************************************************************************

*

*功能说明: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

当前1/2页12下一页阅读全文

【Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页】相关文章:

Asp.Net 和 AJAX.Net 的区别第1/2页

asp.net下gridview 批量删除的实现方法第1/3页

asp.net(C#) Xml操作(增删改查)练习

Asp.net 时间操作基类(支持短日期,长日期,时间差)

Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)

asp.net安全、实用、简单的大容量存储过程分页第1/2页

asp.net窗体操作总结

asp.net repeater实现批量删除第1/2页

asp.net 程序优化精选第1/2页

利用Asp.Net回调机制实现进度条

精品推荐
分类导航