首页 > 学院 > 开发设计 > 正文

XML操作

2019-11-17 01:37:21
字体:
来源:转载
供稿:网友

xml操作

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; } }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表