XML操作在编程中还是经常遇到的,有时用XML作为数据存储还是非常方便的,下面是一段C#进行XML操作的类库,通过这个类可以很方便的进行XML文件的读写。
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Data;
using System.IO;
namespace simple
{
public class XmlControl
{
protected string strXmlFile;
protected XmlDocument objXmlDoc = new XmlDocument();
public void loadDoc(string doc)
{
objXmlDoc.LoadXml(doc);
}
public void Load(string XmlFile)
{
//
// TODO: 在这里加入建构函式的程式码
//
try
{
objXmlDoc.Load(XmlFile);
}
catch (System.Exception ex)
{
throw ex;
}
strXmlFile = XmlFile;
}
public void New(string XmlFile)
{
//新建xml文档
XmlNode xmlnode = objXmlDoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
objXmlDoc.AppendChild(xmlnode);
XmlElement xmlelement = objXmlDoc.CreateElement("config");
objXmlDoc.AppendChild(xmlelement);
strXmlFile = XmlFile;
}
public string GetData(string XmlPathNode)
{
//查找数据。
return objXmlDoc.SelectSingleNode(XmlPathNode).InnerText;
}
public string[] GetArray(string XmlPathNode)
{
//查找数据。
string[] array = new string[objXmlDoc.SelectNodes(XmlPathNode).Count];
int i;
for (i = 0; i < array.Length; i++)
{
array[i] = objXmlDoc.SelectNodes(XmlPathNode)[i].InnerText;
}
return array;
}
public void Replace(string XmlPathNode, string Content)
{
//更新节点内容。
objXmlDoc.SelectSingleNode(XmlPathNode).InnerText = Content;
}
public void Delete(string Node)
{
//删除一个节点。
string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
}
public void InsertNode(string MainNode, string ChildNode, string Element, string Content)
{
//插入一节点和此节点的一子节点。
XmlNode objRootNode = objXmlDoc.SelectSingleNode(MainNode);
XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);
objRootNode.AppendChild(objChildNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.InnerText = Content;
objChildNode.AppendChild(objElement);
}
public void InsertNode(string MainNode, string Element, string Content)
{
//插入一节点
XmlNode objRootNode = objXmlDoc.SelectSingleNode(MainNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.InnerText = Content;
objRootNode.AppendChild(objElement);
}
public void InsertElement(string MainNode, string Element, string Attrib, string AttribContent, string Content)
{
//插入一个节点,带一属性。
XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.SetAttribute(Attrib, AttribContent);
objElement.InnerText = Content;
objNode.AppendChild(objElement);
}
public void InsertElement(string MainNode, string Element, string Content)
{
//插入一个节点,不带属性。
XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.InnerText = Content;
objNode.AppendChild(objElement);
}
public void Save()
{
//保存文档。
try
{
objXmlDoc.Save(strXmlFile);
}
catch (System.Exception ex)
{
throw ex;
}
objXmlDoc = null;
}
}