using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Xml; using HotelPms.Share.IO; using HotelPms.Share.Util; namespace HotelPms.Share.Xml { public class SysXmlMgr :IDisposable { /// ****************************** Description ******************************* /// žƒVƒXƒeƒ€–¼Ì /// @”Ä—pƒNƒ‰ƒX /// žŠT—v /// @XML‚Ì‘€ìF’ljÁAC³AíœAŒŸõ‚È‚Ç /// <>Žg—p•û–@ /// ž—š—ð /// @2007/11/10 ¬–؁@Ÿ—´ V‹Kì¬ /// ****************************** Declarations ****************************** #region ššššš@Declartions@ššššš private string fileName; private Dictionary? fileInfo; #endregion #region ššššš@Property@ššššš public string FileName { get { return fileName; } set { fileName = value; } } public Dictionary FileInfo { get { return fileInfo; } set { fileInfo = value; } } #endregion #region ššššš@Class Event@ššššš public SysXmlMgr() : this("") { } public SysXmlMgr(string fileName) { if (!fileName.Equals("")) { this.fileName = fileName; } if (!File.Exists(this.fileName)) { fileInfo = new Dictionary(); } else { fileInfo = GetNormalXml(this.fileName); } } #endregion #region ššššš@Private Function@ššššš #endregion #region ššššš@Public Function@ššššš public static Dictionary GetNormalXml(object hvConfigXml) { Dictionary config = new Dictionary(); XmlDocument doc = new XmlDocument(); string itemName = string.Empty; string itemValue = string.Empty; try { if (hvConfigXml is Stream) { doc.Load((hvConfigXml as Stream)); } else { doc.Load((hvConfigXml as string)); } XmlNode rootnode = doc.DocumentElement; foreach (XmlNode child in rootnode.ChildNodes) { if (child.NodeType == XmlNodeType.Element) { if (child.HasChildNodes) { foreach (XmlNode woItem in child.ChildNodes) { if (woItem.NodeType == XmlNodeType.Element) { if (woItem.Name == "name") { itemName = woItem.InnerText; } else if (woItem.Name == "value") { itemValue = woItem.InnerText; } } } config.Add(itemName, itemValue); } } } return config; } catch { return null; } } public int GetInt(string name) { return CConvert.ToInt(GetItem(name)); } public bool GetBool(string name) { return CConvert.ToBool(GetItem(name)); } public string GetItem(string name) { if (fileInfo.ContainsKey(name)) { return fileInfo[name]; } else { return string.Empty; } } public bool SetItem(string name, string value) { return SetItem(name, value, false); } public bool SetItem(string name, string value, bool forceAdd) { if (fileInfo.ContainsKey(name)) { fileInfo[name] = value; return true; } else { if (forceAdd) { Add(name, value); return true; } else { return false; } } } public void Remove(string name) { fileInfo.Remove(name); } public void Add(string name,string value) { fileInfo.Add(name, value); } /// /// •Û‘¶‚·‚é /// /// public bool Save() { try { StringBuilder fileBuilder = new StringBuilder(); fileBuilder.AppendLine(""); fileBuilder.AppendLine(""); foreach (string item in fileInfo.Keys) { fileBuilder.AppendLine(" "); fileBuilder.AppendLine(" " + item + ""); fileBuilder.AppendLine(" " + fileInfo[item] + ""); fileBuilder.AppendLine(" "); } fileBuilder.AppendLine(""); FileOperation.Delete(fileName); File.WriteAllText(fileName, fileBuilder.ToString(), Encoding.UTF8); return true; } catch { return false; } } public void ReLoad() { this.fileInfo = GetNormalXml(this.fileName); } public void Dispose() { } #endregion } }