当前位置: 首页 > news >正文

C#中的19个LINQ to XML 类

        System.Xml.Linq 命名空间包含 LINQ to XML 的19个类。 LINQ to XML 是内存中的 XML 编程接口,使能轻松有效地修改 XML 文档。

        微软在 LINQ 上投入了很大的精力,使我们在编程时感觉到很舒服。处理 XML 时使用最多的三个类:XElementXAttribute XDocument

序号说明
1Extensions包含 LINQ to XML 扩展方法。
2XAttribute表示 XML 特性。
3XCData表示包含 CDATA 的文本节点。
4XComment表示 XML 注释。
5XContainer表示可包含其他节点的节点。
6XDeclaration表示 XML 声明。
7XDocument表示 XML 文档。 有关 XDocument 对象的组件和用法,请参阅 XDocument Class Overview。
8XDocumentType表示 XML 文档类型定义 (DTD)。
9XElement表示一个 XML 元素。 有关用法信息和示例,请参阅本页的 XElement 类概述和“备注”部分。
10XName表示 XML 元素或属性的名称。
11XNamespace表示一个 XML 命名空间。 此类不能被继承。
12XNode表示 XML 树中节点的抽象概念(元素、注释、文档类型、处理指令或文本节点)。
13XNodeDocumentOrderComparer包含用于比较节点文档顺序的功能。 此类不能被继承。
14XNodeEqualityComparer比较节点以确定其是否相等。 此类不能被继承。
15XObject表示 XML 树中的节点或属性。
16XObjectChangeEventArgs提供有关 Changing 和 Changed 事件的数据。
17XProcessingInstruction表示 XML 处理指令。
18XStreamingElement表示 XML 树中支持流输出延迟的的元素。
19XText表示文本节点。

        表格中列元素详解见超链接。

一、XElement 类

        XElement 类是 LINQ to XML 中的基础类之一。 它表示一个 XML 元素。 可以使用该类创建元素;更改元素内容;添加、更改或删除子元素;向元素中添加属性;或以文本格式序列化元素内容。 还可以与System.Xml 中的其他类(例如 XmlReader、XmlWriter 和XslCompiledTransform)进行互操作。
        使用 LINQ to XML 创建 xml 文档有很多种方式,具体使用哪种方法要根据实际需要。而创建 xml 文档最简单、最常见的方式是使用 XElement 类。

1.使用 XElement 类创建一个 xml 文档

//通过XDocument创建XML
//通过XElement创建XMLusing System.Xml.Linq;namespace _10_1
{class Program{static void Main(string[] args){        CreateDocument();CreateCategories();#region 通过XDocument创建XMLvoid CreateDocument(){string path = Directory.GetCurrentDirectory() + @"\xmldoc.xml";XDocument _xmldoc = new(new XDeclaration("1.0", "utf-8", "yes"),new XElement("Root", "root"));_xmldoc.Save(path);}#endregion 通过XDocument创建XML#region 通过XElement创建XMLvoid CreateCategories(){string path = Directory.GetCurrentDirectory() + @"\People.xml";XElement root = new("Peoples",new XElement("People",new XElement("ID", Guid.NewGuid()),new XElement("Name", "王菲")),new XElement("People",new XElement("ID", Guid.NewGuid()),new XElement("Name", "谢霆锋")),new XElement("People",new XElement("ID", Guid.NewGuid()),new XElement("Name", "章子怡")),new XElement("People",new XElement("ID", Guid.NewGuid()),new XElement("Name", "汪峰")));root.Save(path);}#endregion 通过XElement创建XML}} 
}

2.输出文件

(1)使用 XElement 类创建一个 xml 文档

<Peoples><People><ID>9586dab0-28a4-465a-987d-5f1e89042154</ID><Name>王菲</Name></People><People><ID>7bf22551-7635-4768-bb12-d826ba0991d3</ID><Name>谢霆锋</CategoryName></People><People><ID>bcf1f65d-38f5-40f1-8ad7-eae9d7ee117e</ID><Name>章子怡</Name></People><People><ID>dc69f99b-b8cf-46c3-bba6-a23909a199cd</ID><Name>汪峰</Name></People>
</Peoples>

(2)使用 XDocument类创建一个 xml 文档

<Root>root</Root>

3.使用LINQ to SQL或者LINQ to Object获取数据源

        LINQ to XML的强大之处还在于它可以使用LINQ to SQL或者LINQ to Object获取数据源,然后填充到xml树。

(1)示例源码

        从 Northwind 数据库中读取 CategoriesProducts 表中的数据来创建包含产品类别,以及每

个类别下所有产品的 xml 文件。

(2)输出文件

4.XElement 类包含的其它方法

        XElement 类包含了许多方法,这些方法使得处理 xml 变得轻而易举。其中,SaveCreateReaderToString WriteTo 方法是比较常用的三个方法:

方法参数返回值描述
CreateReaderSystem.Xml.XmlReader创建此节点的XmlReader
SayeSystem.Stringvoid将此元素序列化为文件
System.I0.TextWritervoid将此元素序列化为TextWriter
System.Xml.XmlWritervoid将此元素序列化为XmlWriter
System.String,
System.Xml.Linq.SaveOptions
void将此元素序列化为文件,并可以选择
禁用格式设置
System.IO.TextWriter
System.Xml.Linq.SaveOptions
void将此元素序列化为TextWriter,并可
以选择禁用格式设置
WriteToSystem.Xml.XmlWritervoid将此元素写入XmlWriter
ToStringSystem.String返回此节点的缩进XML
System.Xml.Ling.SaveOptionsSystem.String返回此节点的XML,并可以选择禁用
格式设置

二、XAttribute

        XAttribute 类用来处理元素的属性,属性是与元素相关联的“名称-值”对,每个元素中不能有名称重复的属性。使用 XAttribute 类与使用 XElement 类的操作十分相似。

(1)示例源码

//创建 xml 树时添加属性using System.Xml.Linq;namespace _10_1
{class Program{static void Main(string[] args){        CreateCategoriesByXAttribute();#region 创建 xml 树时添加属性XElement CreateCategoriesByXAttribute(){string path = Directory.GetCurrentDirectory() + @"\PeoplebyXAttribute.xml";XElement root = new("Peoples",new XElement("People",new XAttribute("ID", Guid.NewGuid()),new XElement("Name", "李小龙")),new XElement("People",new XAttribute("ID", Guid.NewGuid()),new XElement("Name", "李连杰")),new XElement("People",new XAttribute("ID", Guid.NewGuid()),new XElement("Name", "成龙")),new XElement("People",new XAttribute("ID", Guid.NewGuid()),new XElement("Name", "甄子丹")));root.Save(path);return root;}#endregion 创建 xml 树时添加属性}} 
}

(2)输出文件

<Peoples><People ID="ed6b428c-a188-4503-870f-d4eea12c52c4"><Name>李小龙</Name></People><People ID="40cfdf39-a189-4963-a86d-e712978c4ae7"><Name>李连杰</Name></People><People ID="d3126eb3-5ede-46f3-90a7-b1d3eb5ef627"><Name>成龙</Name></People><People ID="6558808f-9ef6-4698-b05a-9747479a5238"><Name>甄子丹</Name></People>
</Peoples>

三、XDocument  

        XDocument 类提供了处理 xml 文档的方法,包括声明、注释和处理指令。一个 XDocument 对象可以包含以下内容:
对象个数说明
XDeclaration一个用于指定 xml 声明中的重要组成部分,如文档编码和版本等
XElement一个指定文档的根元素
XDocumentType一个表示一个 xml DTD
XComment多个Xml 注释。它不能是第一个参数,因为一个有效的 xml 文档不能以注释作为开始
XProcessingInstruction多个为处理 xml 的应用程序指定任何所需信息

http://www.lryc.cn/news/218275.html

相关文章:

  • 取消elementUI中table的选中状态和勾选状态赋值
  • LeetCode 72. 编辑距离(动态规划)
  • Bytedance揭秘OpenAI大模型: GPT-3到GPT-4进化路径
  • 第二十六章 BEV感知系列三(车道线感知)
  • 总结几个面试题
  • 【多线程】并发问题
  • httpclient工具类(支持泛型转换)
  • 【华为OD题库-003】最佳植树距离-Java
  • Oracle(12)Managing Indexes
  • DirectX3D 虚拟现实项目 三维物体的光照及着色(五个不同着色效果的旋转茶壶)
  • 【Verilog 教程】7.3 Verilog 串行 FIR 滤波器设计
  • 用golang实现一个基于interface的多态示例,展示其使用场景和优劣性。
  • ArcGIS for Android 禁止地图旋转
  • freertos静态创建任务
  • VBA根据Excel内容快速创建PPT
  • 服务器操作系统有哪些
  • 泄漏检测与修复(LDAR)过程管控平台(销售出租)VOCs便携式总烃分析仪(销售出租)
  • VueX 模块化和namespace
  • 7-4 修理牧场 分数 15
  • 自定义element-ui plus 函数式调用,在API,js中直接使用全局组件
  • [LeetCode]-876.链表的中间结点-206.反转链表-21.合并两个有序链表-203.移除链表元素
  • 通过git多人协调开发
  • CentOS 7 通过 yum 安装 MariaDB(Mysql)
  • 【Solidity】Remix在线环境及钱包申请
  • ARFoundation系列讲解 - 92 涂鸦效果
  • 立创eda专业版学习笔记(8)(运行模式)
  • 349.两个数组的交集+350.两个数组的交集II(set/multiset)
  • 数据结构与算法之排序: 桶排序 (Javascript版)
  • Android studio新版本多渠道打包配置
  • PTA:后序和中序构造二叉树