LINQ to XML简介(1)
来源:互联网 发布:java种颜色代码 编辑:程序博客网 时间:2024/05/15 09:03
1.可扩展标记性语言(XML)是存储和交换数据的重要方法。LINQ为语言增加了一些特性,相比XPath和XSLT,我们可以更容易使用XML。
2.有关XML的重要事项如下:
- XML文档必须有一个根元素来包含所有其他元素
- XML标签必须合理嵌套
- 与HTML标签不同,XML标签是区分大小写的
- XML特性是名字/值配对,它包含了元素的额外元数据
- XML文档中的空格是有效的。这与把空格作为单个空格输出的HTML不同
3.XML类
LINQ to XML可以以两种方式和XML配合使用。
- 第一种方式是作为简化的XML操作API
- 第二种方式是使用本章看到的LINQ查询工具
LINQ to XML API由很多表示XML树组件的类组成。一般使用3个最重要的类包括XElement,XAttribute和XDocument。
- 树使用一条语句来创建,在树中就依次创建所有的嵌套元素,这叫做函数构造
- 每一个元素被对象创建表达式在适当的位置创建,使用了节点类型的构造函数
4.使用XML树的值
Nodes:Nodes方法返回IEnumerable<object>类型的对象,因为返回的节点可能是不同的类型,比如XElement,XComment等,我们可以使用以类型作为参数的方法OfType(type)来指定返回某个类型的节点。
例如:IEnumerable<XComment> comments= root.Nodes().OfType<XComment>();//获取root下类型为XComment的子节点
Elements:使用无参数的Elements方法返回所有子XElements或者使用单个name参数返回具有这个名字的子XElements。
例如:IEnumerable<XElement> elements = root.Elements();
Element:该方法只获取当前节点的第一个子XElement。
例如:XElement element = root.Element("Phone");
Descentdants和Ancestors:这些方法不反悔直接的子元素或父元素,而是忽略嵌套级别,包括所有之上或者之下的节点。
5.增加节点以及操作XML
可以使用Add方法为现有的元素增加子元素。允许我们在一次方法调用中,不管增加的节点类型是什么,增加希望的任意多的元素。
例如:
item.Add(new XElement("Job"),
new XElement("Class"),
new XElement("Department")
);
6.使用XML属性
属性提供了有关XElement的额外信息,它放在XML元素的开始标签中,例如:
//获取根节点
XElement root = employees.Element("Employees");
//增加根节点的属性
root.Add(
new XAttribute("Color","Red"),
new XAttribute("Size","XL")
);
可以使用Attribute方法从一个XElement系欸但获取特性,提供特性名作为参数即可。
例如: XAttribute attr= root.Attribute("Color");
要移除特性,我们可以选择一个特性然后使用Remove方法,或在它的父节点中使用SetAttributeValue方法把特性值设置为null。
例如: root.Attribute("Color").Remove();
root.SetAttributeValue("Size",null);
7.节点的其他类型
(1)XComment XML注释由<!--和-->记号之间的文本组成。
(2)XDeclaration XML声明 new XDeclaration("1.0","utf-8","yes")
- LINQ to XML简介(1)
- LINQ to XML简介
- linq to xml简介
- LINQ to XML简介(2)
- 【linq学习笔记】1、linq to xml
- LINQ To XML 入门(1)
- System.Xml.Linq简介
- XML LINQ简介
- linq to xml(添加节点1)
- 使用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
- Android学习之自定义EditText实现延时保存
- java.net.Decoder、java.net.Encoder
- 在一个service中启动一个activity
- centos6.5主机下虚拟XP_sp3
- 对于刚开始学习Java的人一点建议
- LINQ to XML简介(1)
- Cocos2d-js 学习笔记<一> 环境搭建
- 获取属性值
- HTTP头域列表与解释 之 request篇
- CentOS 7 下安装卸载 VMware
- android颜色对照表
- 需要这样一个记录本-5 VS2010调试C#项目时提示“当前不会命中断点。还没有为该文档为载任何符号”
- redis lua 学习笔记 hello world
- “基数排序”之数组中缺失的数字