微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LINQ to XML简介(1)

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

原文地址:https://www.jb51.cc/xml/297687.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。