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")


0 0
原创粉丝点击