引用网上的 XMLHelper 地址 :https://www.cnblogs.com/chnboy/archive/2009/04/02/1427652.html
稍做修改
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
using System; using System.Linq; using System.Xml; namespace FormTest { /// <summary> /// XMLHelper XML文档操作管理器 /// </summary> public class XMLHelper { public XMLHelper() { // // TODO: 在此处添加构造函数逻辑 // } #region XML文档节点查询和读取 /// <summary> /// 选择匹配XPath表达式的第一个节点XmlNode. /// </summary> /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param> /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名")</param> /// <returns>返回XmlNode</returns> public static XmlNode GetXmlNodeByXpath(string xmlFileName, string xpath) { XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(xmlFileName); //加载XML文档 XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath); return xmlNode; } catch (Exception ex) { return null; //throw ex; //这里可以定义你自己的异常处理 } } /// <summary> /// 选择匹配XPath表达式的节点列表XmlNodeList. /// </summary> /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param> /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名")</param> /// <returns>返回XmlNodeList</returns> public static XmlNodeList GetXmlNodeListByXpath(string xmlFileName, string xpath) { XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(xmlFileName); //加载XML文档 XmlNodeList xmlNodeList = xmlDoc.SelectNodes(xpath); return xmlNodeList; } catch (Exception ex) { return null; //throw ex; //这里可以定义你自己的异常处理 } } /// <summary> /// 选择匹配XPath表达式的第一个节点的匹配xmlAttributeName的属性XmlAttribute. /// </summary> /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param> /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param> /// <param name="xmlAttributeName">要匹配xmlAttributeName的属性名称</param> /// <returns>返回xmlAttributeName</returns> public static XmlAttribute GetXmlAttribute(string xmlFileName, string xpath, string xmlAttributeName) { string content = string.Empty; XmlDocument xmlDoc = new XmlDocument(); XmlAttribute xmlAttribute = null; try { xmlDoc.Load(xmlFileName); //加载XML文档 XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath); if (xmlNode != null) { if (xmlNode.Attributes.Count > 0) { xmlAttribute = xmlNode.Attributes[xmlAttributeName]; } } } catch (Exception ex) { throw ex; //这里可以定义你自己的异常处理 } return xmlAttribute; } /// <summary> /// 选择匹配XPath表达式的第一个节点的匹配xmlAttributeName的属性XmlAttribute. /// </summary> /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param> /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param> /// <param name="name">要匹配xmlAttributeName的属性的子节点名称</param> /// <param name="xmlAttributeName">要匹配xmlAttributeName的属性名称</param> /// <param name="xmlAttributeValues">要匹配xmlAttributeName的属性值</param> /// <returns>返回xmlAttributeName的属性的子节点名称InnerText</returns> public static string GetXmlByAttribute(string xmlFileName, string xpath, string name, string xmlAttributeName, string xmlAttributeValues) { string content = string.Empty; XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(xmlFileName); //加载XML文档 //主要 XmlNodeList xlist = xmlDoc.SelectNodes(xpath); XmlNode xmlNode = xlist.Cast<XmlNode>().Where(o => o.Attributes.Cast<XmlAttribute>().FirstOrDefault(a => a.Name == xmlAttributeName && a.Value == xmlAttributeValues) != null).FirstOrDefault(); //XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath); if (xmlNode != null) { foreach (XmlNode node in xmlNode.ChildNodes) { if (node.Name.ToLower() == name.ToLower()) { //存在此节点则返回InnerText content = node.InnerText; break; } } } } catch (Exception ex) { throw ex; //这里可以定义你自己的异常处理 } return content; } /// <summary> /// 选择匹配XPath表达式的第一个节点的匹配xmlAttributeName的属性XmlAttribute. /// </summary> /// <param name="xmlFileName"></param> /// <param name="xpath"></param> /// <param name="xmlAttributeName">要匹配xmlAttributeName的属性名称</param> /// <param name="xmlAttributeValues">要匹配xmlAttributeName的属性值</param> /// <returns>返回节点InnerText</returns> public static string GetXmlByAttribute(string xmlFileName, string xpath, string xmlAttributeName, string xmlAttributeValues) { string content = string.Empty; XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(xmlFileName); //加载XML文档 //主要 XmlNodeList xlist = xmlDoc.SelectNodes(xpath); XmlNode xmlNode = xlist.Cast<XmlNode>().Where(o => o.Attributes.Cast<XmlAttribute>().FirstOrDefault(a => a.Name == xmlAttributeName && a.Value == xmlAttributeValues) != null).FirstOrDefault(); //XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath); if (xmlNode != null) { content = xmlNode.InnerText; } } catch (Exception ex) { throw ex; //这里可以定义你自己的异常处理 } return content; } #endregion #region XML文档创建和节点或属性的添加、修改 /// <summary> /// 创建一个XML文档 /// </summary> /// <param name="x