//获取Xml对象
private XmlDataDocument GetXMLDocment(string fileName)
{
XmlDataDocument xmlDoc;
if (File.Exists(fileName))
{
xmlDoc = new XmlDataDocument();
xmlDoc.Load(fileName);
}
else
{
xmlDoc = new XmlDataDocument();
//加入xml的声明
XmlNode xmlNode = xmlDoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
xmlDoc.AppendChild(xmlNode);
//生成根节点
xmlNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(xmlNode);
xmlDoc.Save(fileName);
}
return xmlDoc;
}
//获取节点文本
private string GetXmlInnerTextByNodeName(XmlDataDocument xmlDoc, string nodeName)
{
XmlNodeList nodeList = xmlDoc.GetElementsByTagName(nodeName);
if (nodeList.Count > 0)
{
XmlNode node = nodeList.Item(0);
return node.InnerText;
}
else
{
return "";
}
}
//创建新节点
private XmlElement GetNewElement(XmlDataDocument xmlDoc, string elementName, string innerText)
{
XmlElement element = xmlDoc.CreateElement(elementName);
element.InnerText = innerText;
return element;
}
//保持记录
private void SaveConfigToXml(string fileName, string parentNodeName, Hashtable hs)
{
XmlDataDocument xmlDoc = GetXMLDocment(fileName);
XmlNodeList nodeList = xmlDoc.GetElementsByTagName(parentNodeName);
XmlElement xmlElement = null;
if (nodeList.Count > 0)
{
xmlElement = (XmlElement)nodeList.Item(0);
}
if (xmlElement == null)
{
xmlElement = xmlDoc.CreateElement(parentNodeName);
XmlNode xmlRootNode = xmlDoc.SelectSingleNode("root");
xmlRootNode.AppendChild(xmlElement);
}
else
{
xmlElement.RemoveAll();
}
foreach (DictionaryEntry di in hs)
{
xmlElement.AppendChild(GetNewElement(xmlDoc, di.Key.ToString(), di.Value.ToString()));
}
try
{
xmlDoc.Save(fileName);
}
catch (Exception ex)
{
}
}