方便 以后操作xml文件,写的类,未完全测试,有问题我会修正
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Windows.Forms;
using System.Threading;
namespace SmartDeviceProject1.untils
{
class xmlFile
{
private XmlDocument m_Doc;
private string m_Path;
public xmlFile(string path)
{
m_Path = path;
m_Doc = new XmlDocument();
m_Doc.Load(m_Path);
}
//-------------------------------------------------------------
//删除父节点下的所有子节点 例如 DelChildNode("CONFIG/testNode")
//-------------------------------------------------------------
public void DelChildNode(string nodePathName)
{
XmlNodeList xnl = m_Doc.SelectNodes(nodePathName);
foreach (XmlNode xn in xnl)
{
xn.RemoveAll();
}
m_Doc.Save(m_Path);
}
//-------------------------------------------------------------
//在父节点下添加子节点
//-------------------------------------------------------------
public void AddChildNode(string nodeParentPathName,string nodeChildName)
{
XmlElement xelKey;
xelKey = (XmlElement)m_Doc.SelectSingleNode(nodeParentPathName +"/"+ nodeChildName);
if (xelKey == null) xelKey = m_Doc.CreateElement(nodeChildName);
XmlNode parentNode = m_Doc.SelectSingleNode(nodeParentPathName);
parentNode.AppendChild(xelKey);
m_Doc.Save(m_Path);
}
//-------------------------------------------------------------
//给子节点添加成员
//-------------------------------------------------------------
public void ChildNodeAddInner(string nodeParentPathName, string nodeChildName, string innerName, string innerValue)
{
XmlElement xelKey;
XmlElement xelInner;
xelKey = (XmlElement)m_Doc.SelectSingleNode(nodeParentPathName + "/" + nodeChildName);
if (xelKey == null) xelKey = m_Doc.CreateElement(nodeChildName);
xelInner = m_Doc.CreateElement(innerName);
xelInner.InnerText = innerValue;
xelKey.AppendChild(xelInner);
XmlNode parentNode = m_Doc.SelectSingleNode(nodeParentPathName);
parentNode.AppendChild(xelKey);
m_Doc.Save(m_Path);
}
//-------------------------------------------------------------
//给子节点设置属性
//-------------------------------------------------------------
public void ChildNodeSetAttribute(string nodeParentPathName, string nodeChildName, string attributeName, string attributeValue)
{
XmlElement xelKey;
XmlAttribute xelAttribute;
xelKey = (XmlElement)m_Doc.SelectSingleNode(nodeParentPathName + "/" + nodeChildName);
if (xelKey == null) xelKey = m_Doc.CreateElement(nodeChildName);
xelAttribute = m_Doc.CreateAttribute(attributeName);
xelAttribute.InnerText = attributeValue;
xelKey.SetAttributeNode(xelAttribute);
XmlNode parentNode = m_Doc.SelectSingleNode(nodeParentPathName);
parentNode.AppendChild(xelKey);
m_Doc.Save(m_Path);
}
}
}