C# 操作XML

    public class KeyValue
    {
        private string key = string.Empty;

        public string Key
        {
            get { return key; }
            set { key = value; }
        }
        private string value = string.Empty;

        public string Value
        {
            get { return this.value; }
            set { this.value = value; }
        }

        public KeyValue(string key, string value)
        {
            this.Key = key;
            this.Value = value;
        }
    }

    public class Result
    {
        public static string CreateResult(string status, string message, List<KeyValue> rsList)
        {
            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点  
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");
                xmlDoc.AppendChild(node);
                //创建根节点  
                XmlNode root = xmlDoc.CreateElement("data");
                xmlDoc.AppendChild(root);

                XmlNode result = xmlDoc.CreateNode(XmlNodeType.Element, "result", null);
                CreateNode(xmlDoc, result, "status", status);
                CreateNode(xmlDoc, result, "message", message);
                root.AppendChild(result);

                XmlNode writetext = xmlDoc.CreateNode(XmlNodeType.Element, "writetext", null);
                root.AppendChild(writetext);

                if (rsList != null)
                {
                    for (int i = 0; i < rsList.Count; i++)
                    {
                        CreateNode(xmlDoc, writetext, rsList[i].Key, rsList[i].Value);
                    }
                }
                return xmlDoc.InnerXml;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public static void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value)
        {
            XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null);
            node.InnerText = value;
            parentNode.AppendChild(node);
        }

        public static XmlDocument CreateTitle(string status, string message)
        {
            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点  
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");
                xmlDoc.AppendChild(node);
                //创建根节点  
                XmlNode root = xmlDoc.CreateElement("data");
                xmlDoc.AppendChild(root);

                XmlNode result = xmlDoc.CreateNode(XmlNodeType.Element, "result", null);
                CreateNode(xmlDoc, result, "status", status);
                CreateNode(xmlDoc, result, "message", message);
                root.AppendChild(result);

                return xmlDoc;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public static string CreateList(XmlDocument xmlDoc, string elementParent, string item, List<KeyValue> rsList)
        {
            try
            {
                XmlNode xmlNode = xmlDoc.SelectSingleNode("data");
                XmlNode writetext = xmlNode.SelectSingleNode(elementParent);
                XmlNode itemNode = null;

                if (writetext == null)
                {
                    writetext = xmlDoc.CreateNode(XmlNodeType.Element, elementParent, null);
                    xmlNode.AppendChild(writetext);

                    itemNode = xmlDoc.CreateNode(XmlNodeType.Element, item, null);
                    writetext.AppendChild(itemNode);
                }
                else
                {
                    itemNode = xmlDoc.CreateNode(XmlNodeType.Element, item, null);
                    writetext.AppendChild(itemNode);
                }
                if (rsList != null)
                {
                    for (int i = 0; i < rsList.Count; i++)
                    {
                        CreateNode(xmlDoc, itemNode, rsList[i].Key, rsList[i].Value);
                    }
                }
                return xmlDoc.InnerXml;
            }
            catch (Exception)
            {
                throw;
            }
        }
    }

    public enum ResultState
    {
        success = 1, failed = 0, none = -1, error = -2, mserror = -3
    }

    public class HelperXml
    {
        /// <summary>
        /// 解析xml
        /// </summary>
        /// <param name="xmltext"></param>
        public static XmlNode AnalysisXml(string xmlfile)
        {
            try
            {
                System.Xml.XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(xmlfile);

                XmlNode root = xmlDoc.SelectSingleNode("master");
                //获取根节点下所有子节点
                XmlNodeList nodelist = root.ChildNodes;
                return root;
            }
            catch (Exception)
            {
                throw;
            }
        }

        /// <summary>
        /// 获取指定节点下所有节点
        /// </summary>
        /// <param name="xmlNode"></param>
        /// <param name="nodeName"></param>
        /// <returns></returns>
        public static XmlNode GetAppointXmlnode(XmlNode xmlNode, string nodeName)
        {
            try
            {
                XmlNode node = xmlNode.SelectSingleNode(nodeName);
                return node;
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
原文地址:https://www.cnblogs.com/rinack/p/5231954.html