Linq to XML Helper

public class LinqToXMLHelper
    {
        /// <summary>
        /// 用LinqToXml的方式操作XML
        /// 特别要说明的是 LinqToXml中每个xml节点都是一个元素(Element)
        /// 所有操作最后必须调用 SaveXmlFile方法才能更新到文件
        /// 否则只是修改内存中的数据
        /// </summary>
        public LinqToXMLHelper()
        {

        }
        #region  生成XML文件
        /// <summary>
        /// 生成XML文件
        /// </summary>
        /// <param name="XmlFile">XML保存的路径</param>
        public static void SaveXmlFile(string XmlFile, XElement element)
        {
            element.Save(GetXmlFullPath(XmlFile));
        }
        #endregion
        #region 加载xml文件到XElement
        /// <summary>
        /// 加载xml文件到XElement
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static XElement Load(string path)
        {
            return XElement.Load(GetXmlFullPath(path));
        }
        #endregion
        #region 添加元素
        /// <summary>
        /// 批量添加元素
        /// </summary>
        /// <param name="parentElement"></param>
        /// <param name="childElements">new XElement("节点名称", new XAttribute("节点属性", 节点属性),  new XElement("子节点", new XAttribute("节点属性", 节点属性)),无限添加子节点   );</param>
        public static void AddElements(XElement parentElement, IEnumerable<XElement> childElements)
        {
            foreach (XElement xe in childElements)
            {
                parentElement.Add(xe);
            }
        }
        /// <summary>
        /// 添加元素
        /// </summary>
        /// <param name="parentElement"></param>
        /// <param name="childElement">new XElement("节点名称", new XAttribute("节点属性", 节点属性),  new XElement("子节点", new XAttribute("节点属性", 节点属性)),无限添加子节点   );</param>
        public static void AddElement(XElement parentElement, XElement childElement)
        {
            parentElement.Add(childElement);
           
        }
        #endregion
        #region 根据元素名称删除元素
        /// <summary>
        /// 根据元素名称删除元素
        /// </summary>
        /// <param name="element"></param>
        /// <param name="RemoveElementID"></param>
        public static void RemoveElement(XElement element, string RemoveElementID)
        {
            XElement xe = element.Element(RemoveElementID);
            xe.Remove();
        }

        #endregion
        #region 修改某元素的值
        /// <summary>
        /// 修改某元素的值
        /// </summary>
        /// <param name="element"></param>
        /// <param name="elementName"></param>
        /// <param name="setValue"></param>
        public static void ModifyElement(XElement element, string elementName, string setValue)
        {
            element.Element(elementName).SetValue(setValue);
        }
        #endregion
   

        #region 根据元素名称查询元素
        /// <summary>
        /// 根据元素名称查询元素
        /// </summary>
        /// <param name="element"></param>
        /// <param name="RemoveElementID"></param>
        public static XElement QueryElement(XElement element, string QueryElementID)
        {
            return element.Element(QueryElementID);

        }
        /// <summary>
        /// 根据元素名称批量查询元素
        /// </summary>
        /// <param name="element"></param>
        /// <param name="RemoveElementID"></param>
        public static IEnumerable<XElement> QueryElements(XElement element, string QueryElementID)
        {
            return element.Elements(QueryElementID);

        }
        /// <summary>
        /// 根据元素名和   属性名称批量查询元素
        /// </summary>
        /// <param name="element">源</param>
        /// <param name="QueryElementID"></param>
        /// <param name="AttributeName">属性名</param>
        /// <param name="AttributeValue">属性值</param>
        /// <returns></returns>
        public static IEnumerable<XElement> QueryElements(XElement element, string QueryElementID, string AttributeName, string AttributeValue)
        {
            return element.Elements(QueryElementID).Where(i => i.Attribute(AttributeName).Value == AttributeValue).ToList<XElement>();

        }
        #endregion
        #region GetXmlFullPath
        /// 
        /// 返回完整路径 
        /// 
        /// Xml的路径 
        /// 
        public static string GetXmlFullPath(string strPath)
        {
            //如果路径中含有:符号,则认定为传入的是完整路径 
            if (strPath.IndexOf(":") > 0)
            {
                return strPath;
            }
            else
            {
                //返回完整路径 
                return System.Web.HttpContext.Current.Server.MapPath(strPath);
            }
        }
        #endregion
    }

闲来无事写着玩玩。 之前在网上搜关于Linq to XML 的帮助类, 但是每每搜到的都是dome。所以趁着周末有空自己整理了一些自己常用的方法留在这里备忘。 由于工作年限的短的问题经验不足写的不好的地方希望各位大神随时指教
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值