使用XML保存程序需要的配置信息

来源:互联网 发布:北京农大网络教育 编辑:程序博客网 时间:2024/05/21 11:13

   //获取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)
            {

            }
        }
      

原创粉丝点击