Linq to XML Helper
来源:互联网 发布:java程序员到架构师 编辑:程序博客网 时间:2024/06/06 08:39
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
- Linq to XML Helper
- 使用LINQ to XML
- LINQ TO XML
- LINQ TO XML学习
- linq to xml demo
- LINQ to XML简介
- LINQ to XML
- linq to xml入门
- LINQ to XML
- LINQ TO Xml【转载】
- LINQ to XML
- LINQ TO XML
- LINQ to XML
- LINQ to XML
- 学习心得LINQ to XML
- Linq to XML批注
- Linq to XML轴
- Linq to XML事件
- 计算“两个整数的最大公约数”程序
- 2014项目二
- 【ObjC那点儿事儿】property和synthesize
- java实现 n阶幻方(奇偶通用)
- Linux进程 进程组 会话 控制终端概念
- Linq to XML Helper
- Undefined reference to 'WinMain@16
- Redis主从同步—笔记
- 两种新建线程的简单方法以及懒汉模式中lock的重要性
- iOS之优先使用autorelease
- Mongoose入门
- cannot set user id Resource temporarily unavailable
- 6572 Phone call分析
- 详谈ASP.NET的DataReader对象