Linq学习总结2--Linq to XML
2015-03-17 21:08
351 查看
概述:
linq to xml(下面简称ltx好了),是微软根据linq技术对于XML的CURD.使用起来比System.XML中的XML操作方式更加简便.这段时间使用它在公司里升级了老板的邮件系统,颇有心得,现在总结一下.
主要对象:
1.XDocument:XML文档对象,载入方式是根据其静态方法载入XML文档: XDocument xDoc = XDocument.load(@"**xml路径**")
.Element("NodeName") 获得子节点XElement对象,XDoc下一般是根节点
.Sava("xmlpath") 保存文档到xml文件
XElement xele = xdocTypeDef.Element("root").Elements().Where(p => p.Attribute("Name").Value == strTopName).Single();
2.XElement:节点对象
.Element("NodeName") 获得子节点XElement对象
.Elements() 返回子节点集合
.Elements("NodeName")返回名字是"NodeName"的子节点集合
.Add(param[] obj) 增加的可以是多个节点或是属性
.Remove() 将节点删除.
.value 节点属性
3.XAttribute:属性对象
知道这些就可以在结合linq就可以对XML进行操作了.
下面是最近的小项目中为节点增加子节点和属性的部分源码:
View Code
删除和修改节点
多多练习方能掌握.
linq to xml(下面简称ltx好了),是微软根据linq技术对于XML的CURD.使用起来比System.XML中的XML操作方式更加简便.这段时间使用它在公司里升级了老板的邮件系统,颇有心得,现在总结一下.
主要对象:
1.XDocument:XML文档对象,载入方式是根据其静态方法载入XML文档: XDocument xDoc = XDocument.load(@"**xml路径**")
.Element("NodeName") 获得子节点XElement对象,XDoc下一般是根节点
.Sava("xmlpath") 保存文档到xml文件
XElement xele = xdocTypeDef.Element("root").Elements().Where(p => p.Attribute("Name").Value == strTopName).Single();
2.XElement:节点对象
.Element("NodeName") 获得子节点XElement对象
.Elements() 返回子节点集合
.Elements("NodeName")返回名字是"NodeName"的子节点集合
.Add(param[] obj) 增加的可以是多个节点或是属性
.Remove() 将节点删除.
.value 节点属性
3.XAttribute:属性对象
知道这些就可以在结合linq就可以对XML进行操作了.
下面是最近的小项目中为节点增加子节点和属性的部分源码:
public static bool addElement(XElement xeleNode,string addEleType, string strContralName,string strContent) { XElement xeleChild = new XElement(addEleType); xeleChild.Add(new XAttribute(strContralName,strContent)); //判斷有木有此子控件 if ( xeleNode.Elements().Count() > 0 && xeleNode.Elements().Where(p => p.Attribute(strContralName).Value == strContent).Count() > 0) return false; xeleNode.Add(xeleChild); return true; } public static bool addAttr(XElement xeleNode, Dictionary<string, string> dic) { bool flag = true; foreach (KeyValuePair<string, string> pair in dic) { if (xeleNode.Elements().Where(p => p.Attribute("Name").Value == pair.Key).Count() > 0) { flag = false; continue; } XElement xeleChild = new XElement("Attribute"); xeleChild.Add(new XAttribute("Name",pair.Key.ToString())); xeleChild.Value = pair.Value.ToString(); xeleNode.Add(xeleChild); } return flag; }
View Code
删除和修改节点
... //修改节点 XElement xele = XEleFirstNode.Elements().Where(p => p.Attribute("Name").Value == strContralName ).Single() as XElement; xele = xele.Elements().Where(p => p.Attribute("Name").Value == strAttr).Single() as XElement; xele.Value = strAttrDes; xDoc.Save(strPath); ... //del node if (MessageBox.Show("確定刪除?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) return; foreach(object str in lBAtrributes.SelectedItems) //listbox mutiselect { string strAttr = str.ToString(); XElement xeleAttr = XEleSecondNode.Elements().Where(p => p.Attribute("Name").Value == strAttr).Single() as XElement; xeleAttr.Remove(); } xDoc.Save(strPath);
多多练习方能掌握.
相关文章推荐
- LINQ to XML 学习总结
- Linq to Xml 学习笔记一
- LINQ学习心得分享--------(四)LINQ TO XML实用解析
- C# 2008 学习笔记 - LINQ to XML
- Linq To Xml学习-起源与实用
- LINQ to XML LINQ学习第一篇
- C#学习之Linq to Xml
- C# Linq to xml学习 用XElement类读写XML文档(用作配置文档)
- C# 2008 学习笔记 - LINQ to XML
- asp.net Linq to Xml学习笔记
- Linq学习笔记---Linq to Xml操作
- XML基础学习02<linq to xml>
- Linq学习<四> linq to XML
- LINQ to XML学习笔记
- C# 2008 学习笔记 - LINQ to XML
- LINQ to XML LINQ学习第一篇
- 参考文章-C# Linq To XML的学习(创建并编辑XML树)示例
- 【linq学习笔记】1、linq to xml
- linq to xml操作XML,这是转的大神的,自己学习了,也希望你们也能学习一下
- C#学习之Linq to Xml