自己也写了那么多,但还有很多不懂,有点浮躁吧,但饭还是要吃啊,说说LINQ TO XML吧。

  LINQ TO XML位于System.Xml.Linq程序集,并且大多数类型位于System.Xml.Linq命名空间。该命名空间下几乎所有类型都以X为前缀;普通DOM API中的Element对应LINQ TO XML中的XElement。列举下都有哪些类型。

  1. XName:表示元素和特性的名称
  2. XNamespace:表示XML的命名空间,通常是一个URL
  3. XObject:是XNode和XAttribute的共同父类:与DOM API中不同,在LINQ TO XML中特性不是节点。如果某方法返回子节点的元素,这里面是不包含特性的
  4. XNode:表示XML树中的节点,它定义了各种用于操作和查询树的成员。
  5. XAttribute:表示包含名/值对的特性,值从本质上讲是文本,但可以显式地转换成其它数据类型
  6. XContainer:是XML树中包含子内容的节点
  7. XText:表示文本节点,其派生类XCData是CDATA文本节点
  8. XElement:它和XAttribute是LINQ TO XML中最常用的类,
  9. XDocument:表示文档
  • 继承于XContainer的Add方法有以下几点:
  1. 空引用会被忽略
  2. XNode和XAttribute实例可以添加
  3. 字符串、数字、日期、时间等使用标准XML格式转换成XText
  4. 其它没有特殊处理的对象将调用ToString()将其转换成文本
  • 使用的几个实例

    1 var element = new XElement("root", new XElement("child"));
    2 Console.WriteLine(element);

    1 <root>
    2   <child />
    3 </root>

    1 var element1 = new XElement("root", new XElement("child", DateTime.Now));
    2 Console.WriteLine(element1);

    1 <root>
    2   <child>2015-01-28T22:35:41.9713268+08:00</child>
    3 </root>

    1 var list = new List<User> {
    2 new User {Name="a",Age=1 },
    3 new User {Name="b",Age=2 },
    4 new User {Name="c",Age=3 },
    5 new User {Name="d",Age=4 }
    6 };
    7
    8 var element2 = new XElement("root", list.Select(user => new XElement("child", user.Name)));
    9 Console.WriteLine(element2);

    1 var element3 = new XElement("root", list.Select(user => new XElement("child", new XAttribute("name", user.Name), new XAttribute("age", user.Age))));
    2 Console.WriteLine(element3);

     1 <root>
     2   <child>a</child>
     3   <child>b</child>
     4   <child>c</child>
     5   <child>d</child>
     6 </root>
     7
     8
     9 <root>
    10   <child name="a" age="1" />
    11   <child name="b" age="2" />
    12   <child name="c" age="3" />
    13   <child name="d" age="4" />
    14 </root>

  • 查询单个节点

  对于XElement来说可迭代的东西太多了,XElement包含很多轴方法(轴方法,个人理解就是直接了当的方法),如什么什么点,比如New Element("root").Elements就是返回在root下所有的子节点,New Element("root").Attributes就是root中所有特性节点。还是罗列下吧,但不止这些。

  1. Ancestors:祖先节点
  2. DescendantNodes:后代节点
  3. Annotations:注释(注释也是一个节点)
  4. Elements:子节点
  5. Descendants:后代
  6. 节点。。。。

  对单个节点使用的轴方法返回的节点序列,完全可以使用LINQ来查询,或者使用扩展方法来做一些操作,可以看到LINQ从查询内存中object到数据库中的数据,再到XML,使用的都是相同的方法(对于我们使用者),完美地结合起来。

  请斧正。

转载于:https://www.cnblogs.com/a2htray/p/4257356.html

24.C#LINQ TO XML(十二章12.3)相关推荐

  1. 第三十二章 XML基础知识概念

    文章目录 第三十二章 XML基础知识概念 attribute CDATA区域 comment content model default namespace DOM DTD(文档类型定义) eleme ...

  2. python 宝典 笔记 第十二章 存储数据和对象 (各种对象转换成字符串)

    第十二章 存储数据和对象 12.1数据存储概述 12.1.1文本与二进制对比 文本格式易于阅读和调试,跨平台性能好.二进制格式占用空间小,适于按记录存取. 12.1.2压缩 假如对象的大小开始成为问题 ...

  3. 鸟哥的Linux私房菜(服务器)- 第十二章、网络参数控管者: DHCP 服务器

    第十二章.网络参数控管者: DHCP 服务器 最近更新日期:2011/07/27 想象两种情况:(1)如果你在工作单位使用的是笔记本电脑,而且常常要带着你的笔记本电脑到处跑, 那么由第四章.连上 In ...

  4. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高...

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  5. 《深入理解 Spring Cloud 与微服务构建》第十二章 服务注册和发现 Consul

    <深入理解 Spring Cloud 与微服务构建>第十二章 服务注册和发现 Consul 文章目录 <深入理解 Spring Cloud 与微服务构建>第十二章 服务注册和发 ...

  6. 【Java数据结构与算法】第十二章 哈夫曼树和哈夫曼编码

    第十二章 哈夫曼树和哈夫曼编码 文章目录 第十二章 哈夫曼树和哈夫曼编码 一.哈夫曼树 1.基本术语 2.构建思路 3.代码实现 三.哈夫曼编码 1.引入 2.介绍 3.代码实现哈夫曼编码综合案例 一 ...

  7. 第十二章: 部署Django

    2019独角兽企业重金招聘Python工程师标准>>> 第十二章: 部署Django 本章包含创建一个django程序最必不可少的步骤 在服务器上部署它 如果你一直跟着我们的例子做, ...

  8. 简述sd卡2.0协议_【正点原子FPGA连载】第十二章SD卡读写TXT文本实验-领航者 ZYNQ 之嵌入式开发指南...

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  9. linux i2c adapter 增加设备_「正点原子Linux连载」第六十二章Linux SPI驱动实验(一)...

    1)实验平台:正点原子Linux开发板 2)摘自<正点原子I.MX6U嵌入式Linux驱动开发指南>关注官方微信号公众号,获取更多资料:正点原子 第六十二章Linux SPI驱动实验 上一 ...

最新文章

  1. 新手学java_新手如何学习Java
  2. 数据挖掘之关联分析四(连续属性处理)
  3. log nginx 客户端请求大小_nginx log记录请求响应时间
  4. 函数指针与回调函数详解
  5. 实践案例丨Pt-osc工具连接rds for mysql 数据库失败
  6. php isinstance,Python issubclass和isinstance
  7. php如何打印程序运行时间,php计算程序运行时间的简单实例 - microtime
  8. MySql 中的 int(11) 到底代表什么意思?
  9. Linux 端口占用情况查看
  10. ASP.NET Core中返回 json 数据首字母大小写问题
  11. matlab画图命令
  12. 华为数字化转型的钻石模型
  13. 模式先行浅析分销系统的优势
  14. 中国石油沥青行业市场供需与战略研究报告
  15. ibm tivoli_IBM Tivoli Directory Server中的安全复制
  16. 群接龙拼团小程序开发
  17. 略谈基本计数原理和排列组合
  18. 写 字 楼 通 信系统工程技术售后维护
  19. 计算机c盘应该装什么区别,电脑的c盘和d盘有什么区别吗
  20. 理解C++中花括号{}的作用

热门文章

  1. JDK/Java 16 可能带来什么新特性?
  2. VUE之监听属性 watch
  3. python3.8.5依赖的urllib版本_Python(pip)-请求依赖警告:urllib3(1.9.1)或chardet(2.3.0)与受支持的版本不匹配...
  4. 三个案例看Nginx配置安全
  5. 使用PHP得到所有的HTTP请求头
  6. .NET Framework4.5下载地址和安装
  7. dojo中的dojoConfig配置
  8. XGBoost-Python完全调参指南-参数解释篇
  9. js正则表达式之人民币匹配
  10. 一个很不错的LINUX基本操作归纳