LINQ to XML由System.Xml.Linq namespace实现,该namespace包含处理XML时用到的所有类。在使用LINQ to XML时需要添加System.Xml.Linq.dll的引用,在代码声明中添加using:

using System.Xml.Linq;

1. System.Xml.Linq namespace的类及其描述

描述
XAttribute XML中的一个属性
XCData CDATA文本节点
XComment XML注释
XContainer 一个抽象基类,表示具有子节点的节点
XDeclaration XML声明
XDocument XML文档,该类派生自XContainer类
XDocumentType XML DTD(文档类型定义)
XElement XML元素,是XContainer的派生类
XName XML元素或属性的名称
XNamespace XML命名空间
XNode XML元素树的节点
XNodeDocumentOrderComparer 根据节点在XML文档内的顺序对它们进行比较
XNodeEqualityComparer 根据节点的值对它们进行比较
XObject 表示XNodes和XAttributes的抽象类
XObjectChange XObject事件发生时的事件类型
XObjectChangeEventArgs 为Changing和Chenged事件提供信息和数据
XObjectChangeEventHandler 处理XObject中Changed和Changing事件的方法
XProcessingInstruction XML处理指令
XText XML文本

  示例:XML声明指定XML版本、XML文档的编码,以及XML文档是否是一个独立的文件。

// using System.Xml.Linq;
XDocument doc = new XDocument
(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Root", "LINQ to XML")
);
string xml = doc.Declaration.ToString() + Environment.NewLine + doc.ToString();
Console.WriteLine(xml);

  运行结果:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>LINQ to XML</Root>

2. XElement类

  XElement类表示XML元素,它是XContainer类的派生类,而XContainer类又派生于XNode类。一个元素就是一个节点,XElement是LINQ to XML最重要最基本的类之一,它包含所有创建和操作XML元素所必需的功能。通过它可以创建元素,添加和修改元素的属性,操作元素的内容等。

XDocument doc = new XDocument
(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Created by LINQ to XML"),
new XElement
(
"Products",
new XElement("ProductID", ),
new XElement("ProductName", "LINQ to XML"),
new XElement("UnitPrice", 10m)
)
);
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<!--Created by LINQ to XML-->
<Products>
<ProductID>1</ProductID>
<ProductName>LINQ to XML</ProductName>
<UnitPrice>10</UnitPrice>
</Products>

3. XAttribute类

  XAttribute类用来处理属性,属性是与元素相关联的名称/值对。

XElement product = new XElement
(
"Root",
new XElement
(
"Product",
new XAttribute("id", )
)
);
<Root>
<Product id="1" />
</Root>
XElement product = new XElement
(
"Root",
new XElement
(
"Product",
new XAttribute("ProductID", ),
new XAttribute("ProductName", "LINQ to XML")
)
);
<Root>
<Product ProductID="1" ProductName="LINQ to XML" />
</Root>

  删除元素属性:

XAttribute attr = product.Element("Product").Attribute("ProductName");
attr.Remove();

4. XDocument类

  XDocument类提供了处理有效XML文档的方法,包括声明、注释和处理指令。XDocument类派生自XContainer类,可以有子节点。XML标准限值XDocument对象只包含单个XElement子节点,此节点作为根节点或跟元素。

LINQ系列:LINQ to XML类的更多相关文章

  1. C# ~ 从 XML 到 Linq 到 Linq to XML

    .XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...

  2. [引]LINQ to XML 类概述

    本文转自:http://msdn.microsoft.com/zh-cn/library/bb387023.aspx 本主题提供 System.Xml.Linq 命名空间中 LINQ to XML 类 ...

  3. Linq之Linq to XML

    目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将wor ...

  4. LINQ系列目录

    1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...

  5. LinQ系列文章

    温故而知新,想着系统再学习一次LinQ知识点,发现园子里有个非常棒的系列文章,所以Mark下来,方便以后查阅! 系列博客导航: LINQ之路系列博客导航 LINQ之路 1:LINQ介绍 LINQ之路 ...

  6. LINQ 系列

    C#图解教程 第十九章 LINQ   LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...

  7. 白话LINQ系列2---以代码演进方式学习LINQ必备条件

    今天,我们通过一个简单的示例代码的演进过程,来学习LINQ必备条件:隐式类型局部变量:对象集合初始化器:委托:匿名函数:lambda表达式:扩展方法:匿名类型.废话不多说,我们直接进入主题. 一.实现 ...

  8. C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换

    LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...

  9. Linq系列

    LINQ 图解 Linq中的Select——投影 Linq学习资源 Expert C# 5.0中的Linq部分

  10. [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类

    [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类 本节导读:本节主要介绍通过序列 ...

随机推荐

  1. 词法分析程序(C)

    #include <stdio.h> #include <string.h> ],word[],ch; int type,p,i,n,sum; ]={"begin&q ...

  2. 【BZOJ1662】[Usaco2006 Nov]Round Numbers 圆环数 数位DP

    [BZOJ1662][Usaco2006 Nov]Round Numbers 圆环数 Description 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁 ...

  3. 给notepad++添加右键菜单

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\Shell\NotePad++] [HKEY_CLASSES_ROOT\*\Shel ...

  4. 【EntityFramework Core】实体实例化注入

    由于逻辑需要,我希望能在EF Core实例化实体时,拿到实体并执行相关代码,所以我就研究了一番EF Core,得到以下方法. 1.创建实体初始化类,继承EntityMaterializerSource ...

  5. xcode 版本控制推送代码到远程git仓库的步骤

    一 代码推送到远程git仓库 1.在git中建立一个下项目(假设项目名称为->Mygit) 2.在xocde上新建一个测试项目(假设项目名称为GitTest) 3.打开电脑终端: 1)首先利用终 ...

  6. 深入浅出HTTP协议(WEB开发和面试必备)

    1. 基础概念篇   a.简介 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和 ...

  7. python 安装

    http://www.aichengxu.com/view/37456 http://blog.csdn.net/tiantiandjava/article/details/17242345 tar ...

  8. Python3.5+selenium操作Chrome浏览器

    1.安装selenium 命令提示符下输入: pip install selenium 2.下载chromedriver 点击下载 3.将解压后的chromedriver.exe放到chrome浏览器 ...

  9. finally回收资源

    Java中的垃圾回收机制,也就是GC不会回收任何物理资源,垃圾回收机制只回收堆内存中对象所占用的内存,所以其他的物理资源需要用finally来回收. 如果try块中的某条语句引起了异常,该异常就会被c ...

  10. RadioGroup实现导航栏

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...