24.C#LINQ TO XML(十二章12.3)
自己也写了那么多,但还有很多不懂,有点浮躁吧,但饭还是要吃啊,说说LINQ TO XML吧。
LINQ TO XML位于System.Xml.Linq程序集,并且大多数类型位于System.Xml.Linq命名空间。该命名空间下几乎所有类型都以X为前缀;普通DOM API中的Element对应LINQ TO XML中的XElement。列举下都有哪些类型。
- XName:表示元素和特性的名称
- XNamespace:表示XML的命名空间,通常是一个URL
- XObject:是XNode和XAttribute的共同父类:与DOM API中不同,在LINQ TO XML中特性不是节点。如果某方法返回子节点的元素,这里面是不包含特性的
- XNode:表示XML树中的节点,它定义了各种用于操作和查询树的成员。
- XAttribute:表示包含名/值对的特性,值从本质上讲是文本,但可以显式地转换成其它数据类型
- XContainer:是XML树中包含子内容的节点
- XText:表示文本节点,其派生类XCData是CDATA文本节点
- XElement:它和XAttribute是LINQ TO XML中最常用的类,
- XDocument:表示文档
- 继承于XContainer的Add方法有以下几点:
- 空引用会被忽略
- XNode和XAttribute实例可以添加
- 字符串、数字、日期、时间等使用标准XML格式转换成XText
- 其它没有特殊处理的对象将调用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中所有特性节点。还是罗列下吧,但不止这些。
- Ancestors:祖先节点
- DescendantNodes:后代节点
- Annotations:注释(注释也是一个节点)
- Elements:子节点
- Descendants:后代
- 节点。。。。
对单个节点使用的轴方法返回的节点序列,完全可以使用LINQ来查询,或者使用扩展方法来做一些操作,可以看到LINQ从查询内存中object到数据库中的数据,再到XML,使用的都是相同的方法(对于我们使用者),完美地结合起来。
请斧正。
转载于:https://www.cnblogs.com/a2htray/p/4257356.html
24.C#LINQ TO XML(十二章12.3)相关推荐
- 第三十二章 XML基础知识概念
文章目录 第三十二章 XML基础知识概念 attribute CDATA区域 comment content model default namespace DOM DTD(文档类型定义) eleme ...
- python 宝典 笔记 第十二章 存储数据和对象 (各种对象转换成字符串)
第十二章 存储数据和对象 12.1数据存储概述 12.1.1文本与二进制对比 文本格式易于阅读和调试,跨平台性能好.二进制格式占用空间小,适于按记录存取. 12.1.2压缩 假如对象的大小开始成为问题 ...
- 鸟哥的Linux私房菜(服务器)- 第十二章、网络参数控管者: DHCP 服务器
第十二章.网络参数控管者: DHCP 服务器 最近更新日期:2011/07/27 想象两种情况:(1)如果你在工作单位使用的是笔记本电脑,而且常常要带着你的笔记本电脑到处跑, 那么由第四章.连上 In ...
- 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高...
第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...
- 《深入理解 Spring Cloud 与微服务构建》第十二章 服务注册和发现 Consul
<深入理解 Spring Cloud 与微服务构建>第十二章 服务注册和发现 Consul 文章目录 <深入理解 Spring Cloud 与微服务构建>第十二章 服务注册和发 ...
- 【Java数据结构与算法】第十二章 哈夫曼树和哈夫曼编码
第十二章 哈夫曼树和哈夫曼编码 文章目录 第十二章 哈夫曼树和哈夫曼编码 一.哈夫曼树 1.基本术语 2.构建思路 3.代码实现 三.哈夫曼编码 1.引入 2.介绍 3.代码实现哈夫曼编码综合案例 一 ...
- 第十二章: 部署Django
2019独角兽企业重金招聘Python工程师标准>>> 第十二章: 部署Django 本章包含创建一个django程序最必不可少的步骤 在服务器上部署它 如果你一直跟着我们的例子做, ...
- 简述sd卡2.0协议_【正点原子FPGA连载】第十二章SD卡读写TXT文本实验-领航者 ZYNQ 之嵌入式开发指南...
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- linux i2c adapter 增加设备_「正点原子Linux连载」第六十二章Linux SPI驱动实验(一)...
1)实验平台:正点原子Linux开发板 2)摘自<正点原子I.MX6U嵌入式Linux驱动开发指南>关注官方微信号公众号,获取更多资料:正点原子 第六十二章Linux SPI驱动实验 上一 ...
最新文章
- 新手学java_新手如何学习Java
- 数据挖掘之关联分析四(连续属性处理)
- log nginx 客户端请求大小_nginx log记录请求响应时间
- 函数指针与回调函数详解
- 实践案例丨Pt-osc工具连接rds for mysql 数据库失败
- php isinstance,Python issubclass和isinstance
- php如何打印程序运行时间,php计算程序运行时间的简单实例 - microtime
- MySql 中的 int(11) 到底代表什么意思?
- Linux 端口占用情况查看
- ASP.NET Core中返回 json 数据首字母大小写问题
- matlab画图命令
- 华为数字化转型的钻石模型
- 模式先行浅析分销系统的优势
- 中国石油沥青行业市场供需与战略研究报告
- ibm tivoli_IBM Tivoli Directory Server中的安全复制
- 群接龙拼团小程序开发
- 略谈基本计数原理和排列组合
- 写 字 楼 通 信系统工程技术售后维护
- 计算机c盘应该装什么区别,电脑的c盘和d盘有什么区别吗
- 理解C++中花括号{}的作用
热门文章
- JDK/Java 16 可能带来什么新特性?
- VUE之监听属性 watch
- python3.8.5依赖的urllib版本_Python(pip)-请求依赖警告:urllib3(1.9.1)或chardet(2.3.0)与受支持的版本不匹配...
- 三个案例看Nginx配置安全
- 使用PHP得到所有的HTTP请求头
- .NET Framework4.5下载地址和安装
- dojo中的dojoConfig配置
- XGBoost-Python完全调参指南-参数解释篇
- js正则表达式之人民币匹配
- 一个很不错的LINUX基本操作归纳