public class XMLOperation { PRivate static readonly ILog log = LogManager.GetLogger(typeof(mainForm)); Message mesg = null; XmlDocument doc; public XMLOperation(string fileName) { mesg = new Message(); try { doc = new XmlDocument(); doc.Load(fileName); } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); } } public XMLOperation() { mesg = new Message(); try { doc = new XmlDocument(); } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); } }
public void CreateRootNode(string name) { try { if (name == "" || name.Trim().Length == 0) { return; }
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); doc.AppendChild(dec); XmlNode node = doc.CreateNode(XmlNodeType.Element, name, ""); doc.AppendChild(node); } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); } }
public XmlNode AddNode(string pNodeName,string nodeName) { if (nodeName == null || nodeName.Length == 0) { return null; } XmlElement xe = null;
try { XmlNode nd = doc.SelectSingleNode(pNodeName); xe = doc.CreateElement(nodeName); nd.AppendChild(xe); } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); } return xe;
}
public void AddElement(XmlNode pNode, string elmName,string value) { try { XmlElement ele = doc.CreateElement(elmName); ele.InnerText = value; pNode.AppendChild(ele); } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); } }
public void SaveDoc(string fileName) { doc.Save(fileName); }
public void ClearNodes(string rootNodeName) { try { XmlNode root = doc.SelectSingleNode(rootNodeName); if (root != null) { root.RemoveAll(); } } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); } }
public Dictionary<string, string> GetKeyValues( string rootNodeName,string elmentKeyName,string elmentKeyValue) { Dictionary<string, string> dicRet = new Dictionary<string, string>(); try { XmlNode rootNode = doc.SelectSingleNode(rootNodeName); if (rootNode.HasChildNodes) { XmlNodeList nodeList = rootNode.ChildNodes; foreach (XmlNode node in nodeList) { if (node.HasChildNodes) { XmlNodeList subNodeList = node.ChildNodes; bool bFind = false; foreach (XmlNode subNode in subNodeList) { if (subNode.Name == elmentKeyName && subNode.InnerText == elmentKeyValue) { bFind = true; dicRet.Add(subNode.Name, subNode.InnerText); continue; } if (bFind) { dicRet.Add(subNode.Name, subNode.InnerText); } } if (bFind) { break; } } } } } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); }
return dicRet; } public List<string> GetValues(string rootNodeName, string elmentKeyName) { List<string> listRet =new List<string>(); try { XmlNode rootNode = doc.SelectSingleNode(rootNodeName); if (rootNode.HasChildNodes) { XmlNodeList nodeList = rootNode.ChildNodes; foreach (XmlNode node in nodeList) { if (node.HasChildNodes) { XmlNodeList subNodeList = node.ChildNodes; foreach (XmlNode subNode in subNodeList) { if (subNode.Name == elmentKeyName) { listRet.Add(subNode.InnerText); break; } } } } } } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); } return listRet; }
public Dictionary<string, string> GetKeyValuesEx(string rootNodeName, string atrributeName) { Dictionary<string, string> dicRet = new Dictionary<string, string>();
try { XmlNode rootNode = doc.SelectSingleNode(rootNodeName); if (rootNode.HasChildNodes) { XmlNodeList nodeList = rootNode.ChildNodes; foreach (XmlNode node in nodeList) { XmlElement xe = (XmlElement)node; string key = xe.GetAttribute(atrributeName); if (!dicRet.ContainsKey(key)) { dicRet.Add(key, xe.InnerText); } } } } catch (Exception ex) { Tools.LogMessage(log, mesg, ex.Message); }
return dicRet; } public void RemoveNode(string rootNodeName, string keyName,string value) {
XmlNode rootNode = doc.SelectSingleNode(rootNodeName); if (rootNode.HasChildNodes) { XmlNodeList nodeList = rootNode.ChildNodes; foreach (XmlNode node in nodeList) { if (node.HasChildNodes) { XmlNodeList subNodeList = node.ChildNodes; foreach (XmlNode subNode in subNodeList) { if (subNode.Name == keyName) { if (subNode.InnerText == value) { rootNode.RemoveChild(subNode.ParentNode); break; } } } } } } } public List<List<string>> GetAllKeyValues(string rootNodeName) { List<List<string>> listRet = new List<List<string>>(); XmlNode rootNode = doc.SelectSingleNode(rootNodeName); if (rootNode.HasChildNodes) { XmlNodeList nodeList = rootNode.ChildNodes; foreach (XmlNode node in nodeList) { if (node.HasChildNodes) { List<string> list = new List<string>(); XmlNodeList subNodeList = node.ChildNodes; foreach (XmlNode subNode in subNodeList) { list.Add(subNode.InnerText); } listRet.Add(list); } } }
return listRet; } }
新闻热点
疑难解答