Linq to XML Helper

前端之家收集整理的这篇文章主要介绍了Linq to XML Helper前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. 闲来无事写着玩玩。 之前在网上搜关于Linq to XML 的帮助类, 但是每每搜到的都是
  2. dome。所以趁着周末有空自己整理了一些自己常用的方法留在这里备忘。 由于工作年
  3. 限的短的问题经验不足写的不好的地方希望各位大神随时指教
  4. public class LinqToXMLHelper
  5. {
  6. /// <summary>
  7. /// 用LinqToXml的方式操作XML
  8. /// 特别要说明的是 LinqToXml中每个xml节点都是一个元素(Element)
  9. /// 所有操作最后必须调用 SaveXmlFile方法才能更新到文件
  10. /// 否则只是修改内存中的数据
  11. /// </summary>
  12. public LinqToXMLHelper()
  13. {
  14. }
  15. #region 生成XML文件
  16. /// <summary>
  17. /// 生成XML文件
  18. /// </summary>
  19. /// <param name="XmlFile">XML保存的路径</param>
  20. public static void SaveXmlFile(string XmlFile,XElement element)
  21. {
  22. element.Save(GetXmlFullPath(XmlFile));
  23. }
  24. #endregion
  25. #region 加载xml文件到XElement
  26. /// <summary>
  27. /// 加载xml文件到XElement
  28. /// </summary>
  29. /// <param name="path"></param>
  30. /// <returns></returns>
  31. public static XElement Load(string path)
  32. {
  33. return XElement.Load(GetXmlFullPath(path));
  34. }
  35. #endregion
  36. #region 添加元素
  37. /// <summary>
  38. /// 批量添加元素
  39. /// </summary>
  40. /// <param name="parentElement"></param>
  41. /// <param name="childElements">new XElement("节点名称",new XAttribute("节点属性",节点属性),new XElement("子节点",节点属性)),无限添加子节点 );</param>
  42. public static void AddElements(XElement parentElement,IEnumerable<XElement> childElements)
  43. {
  44. foreach (XElement xe in childElements)
  45. {
  46. parentElement.Add(xe);
  47. }
  48. }
  49. /// <summary>
  50. /// 添加元素
  51. /// </summary>
  52. /// <param name="parentElement"></param>
  53. /// <param name="childElement">new XElement("节点名称",节点属性)),无限添加子节点 );</param>
  54. public static void AddElement(XElement parentElement,XElement childElement)
  55. {
  56. parentElement.Add(childElement);
  57. }
  58. #endregion
  59. #region 根据元素名称删除元素
  60. /// <summary>
  61. /// 根据元素名称删除元素
  62. /// </summary>
  63. /// <param name="element"></param>
  64. /// <param name="RemoveElementID"></param>
  65. public static void RemoveElement(XElement element,string RemoveElementID)
  66. {
  67. XElement xe = element.Element(RemoveElementID);
  68. xe.Remove();
  69. }
  70. #endregion
  71. #region 修改某元素的值
  72. /// <summary>
  73. /// 修改某元素的值
  74. /// </summary>
  75. /// <param name="element"></param>
  76. /// <param name="elementName"></param>
  77. /// <param name="setValue"></param>
  78. public static void ModifyElement(XElement element,string elementName,string setValue)
  79. {
  80. element.Element(elementName).SetValue(setValue);
  81. }
  82. #endregion
  83. #region 根据元素名称查询元素
  84. /// <summary>
  85. /// 根据元素名称查询元素
  86. /// </summary>
  87. /// <param name="element"></param>
  88. /// <param name="RemoveElementID"></param>
  89. public static XElement QueryElement(XElement element,string QueryElementID)
  90. {
  91. return element.Element(QueryElementID);
  92. }
  93. /// <summary>
  94. /// 根据元素名称批量查询元素
  95. /// </summary>
  96. /// <param name="element"></param>
  97. /// <param name="RemoveElementID"></param>
  98. public static IEnumerable<XElement> QueryElements(XElement element,string QueryElementID)
  99. {
  100. return element.Elements(QueryElementID);
  101. }
  102. /// <summary>
  103. /// 根据元素民和 属性名称批量查询元素
  104. /// </summary>
  105. /// <param name="element">源</param>
  106. /// <param name="QueryElementID"></param>
  107. /// <param name="AttributeName">属性名</param>
  108. /// <param name="AttributeValue">属性值</param>
  109. /// <returns></returns>
  110. public static IEnumerable<XElement> QueryElements(XElement element,string QueryElementID,string AttributeName,string AttributeValue)
  111. {
  112. return element.Elements(QueryElementID).Where(i => i.Attribute(AttributeName).Value == AttributeValue).ToList<XElement>();
  113. }
  114. #endregion
  115. #region GetXmlFullPath
  116. ///
  117. /// 返回完整路径
  118. ///
  119. /// Xml的路径
  120. ///
  121. public static string GetXmlFullPath(string strPath)
  122. {
  123. //如果路径中含有:符号,则认定为传入的是完整路径
  124. if (strPath.IndexOf(":") > 0)
  125. {
  126. return strPath;
  127. }
  128. else
  129. {
  130. //返回完整路径
  131. return System.Web.HttpContext.Current.Server.MapPath(strPath);
  132. }
  133. }
  134. #endregion
  135. }

猜你在找的XML相关文章