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.IO;
using System.Xml;
using System.Text;
using MSXML2;
namespace EC
{
///
/// XML 操作基类
///
public class XmlObject : IDisposable
{
//以下为单一功能的静态类
#region 读取XML到DataSet
///
/// 功能:读取XML到DataSet中
///
/// xml路径
///
public static DataSet GetXml(string XmlPath)
{
DataSet ds = new DataSet();
ds.ReadXml(@XmlPath);
return ds;
}
#endregion
#region 读取xml文档并返回一个节点
///
/// 读取xml文档并返回一个节点:适用于一级节点
///
/// xml路径
/// 节点
///
public static string ReadXmlReturnNode(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
///
/// 查找数据,返回当前节点的所有下级节点,填充到一个DataSet中
///
/// xml文档路径
/// 节点的路径:根节点/父节点/当前节点
///
public static DataSet GetXmlData(string xmlPath, string XmlPathNode)
{
Xmldocument objXmlDoc = new Xmldocument();
objXmlDoc.Load(xmlPath);
DataSet ds = new DataSet();
StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
ds.ReadXml(read);
return ds;
}
#endregion
#region 更新Xml节点内容
///
/// 更新Xml节点内容
///
/// xml路径
/// 要更换内容的节点:节点路径 根节点/父节点/当前节点
/// 新的内容
public static void XmlNodeReplace(string xmlPath,string Node,string Content)
{
Xmldocument objXmlDoc = new Xmldocument();
objXmlDoc.Load(xmlPath);
objXmlDoc.SelectSingleNode(Node).InnerText = Content;
objXmlDoc.Save(xmlPath);
}
#endregion
#region 删除XML节点和此节点下的子节点
///
/// 删除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
#region 插入一个节点和此节点的字节点
///
/// 插入一个节点和此节点的字节点
///
/// xml路径
/// 当前节点路径
/// 新插入节点
/// 插入节点的子节点
/// 子节点的内容
public static void XmlInsertNode(string xmlPath, string MailNode, string ChildNode, string Element,string Content)
{
Xmldocument objXmlDoc = new Xmldocument();
objXmlDoc.Load(xmlPath);
XmlNode objRootNode = objXmlDoc.SelectSingleNode(MailNode);
XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);
objRootNode.AppendChild(objChildNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.InnerText = Content;
objChildNode.AppendChild(objElement);
objXmlDoc.Save(xmlPath);
}
#endregion
#region 插入一节点,带一属性
///
/// 插入一节点,带一属性
///
/// Xml文档路径
/// 当前节点路径
/// 新节点
/// 属性名称
/// 属性值
/// 新节点值
public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Attrib, string AttribContent, string Content)
{
Xmldocument objXmlDoc = new Xmldocument();
objXmlDoc.Load(xmlPath);
XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.SetAttribute(Attrib, AttribContent);
objElement.InnerText = Content;
objNode.AppendChild(objElement);
objXmlDoc.Save(xmlPath);
}
#endregion
#region 插入一节点不带属性
public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Content)
{
Xmldocument objXmlDoc = new Xmldocument();
objXmlDoc.Load(xmlPath);
XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.InnerText = Content;
objNode.AppendChild(objElement);
objXmlDoc.Save(xmlPath);
}
#endregion
//必须创建对象才能使用的类
private bool _alreadyDispose = false;
private string xmlPath;
private Xmldocument xmlDoc=new Xmldocument();
private XmlNode xmlNode;
private XmlElement xmlElem;
#region 构造与释构
public XmlObject()
{
}
~XmlObject()
{
Dispose();
}
protected virtual void Dispose(bool isDisposing)
{
if (_alreadyDispose) return;
if (isDisposing)
{
//
}
_alreadyDispose = true;
}
#endregion
#region IDisposable 成员
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
#endregion
12下一页阅读全文



