Asp.Net XML操作基类(修改,删除,新增,创建)
using System.Xml;
namespace EC
{
///
/// XML操作基类
///
public class XmlObject : IDisposable
{
//以下为单一功能的静态类
#region 读取XML到DataSet
/**************************************************
* 函数名称:GetXml(string XmlPath)
* 功能说明:读取XML到DataSet
* 参 数:XmlPath:xml文档路径
* 使用示列:
* using EC; //引用命名空间
* string xmlPath =Server.MapPath("/EBDnsConfig/DnsConfig.xml"); //获取xml路径
* DataSet ds =EC.XmlObject.GetXml(xmlPath); //读取xml到DataSet中
************************************************/
///
/// 功能:读取XML到DataSet中
///
/// xml路径
/// DataSet
public static DataSet GetXml(string XmlPath)
{
DataSet ds = new DataSet();
ds.ReadXml(@XmlPath);
return ds;
}
#endregion
#region 读取xml文档并返回一个节点
/**************************************************
* 函数名称:ReadXmlReturnNode(string XmlPath,stringNode)
* 功能说明:读取xml文档并返回一个节点:适用于一级节点
* 参 数: XmlPath:xml文档路径;Node 返回的节点名称
* 适应用Xml:
*
* ns1.everdns.com
*
* 使用示列:
* using EC; //引用命名空间
* string xmlPath =Server.MapPath("/EBDnsConfig/DnsConfig.xml"); //获取xml路径
* Response.Write(XmlObject.ReadXmlReturnNode(xmlPath,"mailmanager"));
************************************************/
///
/// 读取xml文档并返回一个节点:适用于一级节点
///
/// xml路径
/// 节点
///
public static stringReadXmlReturnNode(string XmlPath,string Node)
{
XmlDocument docXml = new XmlDocument();
docXml.Load(@XmlPath);
XmlNodeList xn = docXml.GetElementsByTagName(Node);
return xn.Item(0).InnerText.ToString();
}
#endregion
#region 查找数据,返回一个DataSet
/**************************************************
* 函数名称:GetXmlData(string xmlPath, stringXmlPathNode)
* 功能说明:查找数据,返回当前节点的所有下级节点,填充到一个DataSet中
* 参 数:xmlPath:xml文档路径;XmlPathNode:当前节点的路径
* 使用示列:
* using EC; //引用命名空间
* string xmlPath =Server.MapPath("/EBDomainConfig/DomainConfig.xml"); //获取xml路径
* DataSet ds = newDataSet();
* ds =XmlObject.GetXmlData(xmlPath, "root/items");//读取当前路径
* this.GridView1.DataSource = ds;
* this.GridView1.DataBind();
* ds.Clear();
* ds.Dispose();
* Xml示例:
*
*
*
* http://www.paycenter.com.cn/cgi-bin/
* 80
*
*
************************************************/
///
/// 查找数据,返回当前节点的所有下级节点,填充到一个DataSet中
///
/// xml文档路径
/// 节点的路径:根节点/父节点/当前节点
///
public static DataSet GetXmlData(string xmlPath, string XmlPathNode)
{
XmlDocument objXmlDoc = new XmlDocument();
objXmlDoc.Load(xmlPath);
DataSet ds = new DataSet();
StringReader read = newStringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
ds.ReadXml(read);
return ds;
}
#endregion
#region 更新Xml节点内容
/**************************************************
* 函数名称:XmlNodeReplace(string xmlPath,stringNode,string Content)
* 功能说明:更新Xml节点内容
* 参 数:xmlPath:xml文档路径;Node:当前节点的路径;Content:内容
* 使用示列:
* using EC; //引用命名空间
* string xmlPath =Server.MapPath("/EBDomainConfig/DomainConfig.xml"); //获取xml路径
* XmlObject.XmlNodeReplace(xmlPath, "root/test","56789"); //更新节点内容
************************************************/
///
/// 更新Xml节点内容
///
/// xml路径
/// 要更换内容的节点:节点路径根节点/父节点/当前节点
/// 新的内容
public static void XmlNodeReplace(string xmlPath,string Node,stringContent)
{
XmlDocument objXmlDoc = new XmlDocument();
objXmlDoc.Load(xmlPath);
objXmlDoc.SelectSingleNode(Node).InnerText = Content;
objXmlDoc.Save(xmlPath);
}
#endregion
#region 删除XML节点和此节点下的子节点
/**************************************************
* 函数名称:XmlNodeDelete(string xmlPath,string Node)
* 功能说明:删除XML节点和此节点下的子节点
* 参 数:xmlPath:xml文档路径;Node:当前节点的路径;
* 使用示列:
* using EC; //引用命名空间
* string xmlPath =Server.MapPath("/EBDomainConfig/DomainConfig.xml"); //获取xml路径
* XmlObject.XmlNodeDelete(xmlPath, "root/test"); //删除当前节点
************************************************/
///
/// 删除XML节点和此节点下的子节点
///
/// xml文档路径
/// 节点路径
public static void XmlNodeDelete(string xmlPath,string Node)
{
XmlDocument objXmlDoc = new XmlDocument();
objXmlDoc.Load(xmlPath);
string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
objXmlDoc.Save(xmlPath);
}
#endregion