XElement 和 XDocument 到底有什么区别?
咨询区
Rana
请问在xml操作中,XElement
和 XDocument
到底有什么区别?
回答区
nawfal
微软官方文档:https://msdn.microsoft.com/en-us/library/bb675196.aspx
上说的特别清楚,假定你有这样一个 test.xml
文件。
<Root><Child1>1</Child1><Child2>2</Child2><Child3>3</Child3>
</Root>
1. XDocument
如果你用 XDocument
操控的话,写法大概是这样的。
foreach (var element in XDocument.Load("test.xml").Elements())Console.WriteLine(element);
然后可以得到如下的 xml 。
<Root><Child1>1</Child1><Child2>2</Child2><Child3>3</Child3>
</Root>
如果你想要提取 Child1
节点,你不得不这样做。
var child1 = XDocument.Load("test.xml").Element("Root").Element("Child1").Value;
或者
var child1 = XDocument.Load("test.xml").Root.Element("Child1").Value;
2. XElement
如果用 XElement 操控 xml 的话,大概是这样的。
foreach (var element in XElement.Load("test.xml").Elements())Console.WriteLine(element);
然后就可以得到如下 xml。
<Child1>1</Child1>
<Child2>2</Child2>
<Child3>3</Child3>
如果你想提取 Child1
节点,可以这么写。
var child1 = XElement.Load("test.xml").Element("Child1").Value;
总而言之, XElement
它是以忽略 根节点
的方式进行操作,而 XDocument
却不是,也就是说:
XDocument.Root = XElement
或者。
XDocument.Root.Elements() = XElement.Elements()
点评区
XDocument
表示的是整个xml文档,如果你想操作整个xml,那就建议使用。XElement
表示的是 xml 元素,它只是 xml 的一个内部组成部分而已。
XElement 和 XDocument 到底有什么区别?相关推荐
- attachEvent 与addEventListener到底有什么区别呢?
2019独角兽企业重金招聘Python工程师标准>>> attachEvent 与addEventListener到底有什么区别呢?总结如下: 一.适应的浏览器版本不同 attach ...
- Union和Union All到底有什么区别
转自:https://www.cnblogs.com/wen-zi/p/9133754.html 以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面 ...
- 在php中单引号和双引号的区别错误的是___________,浅谈PHP中单引号和双引号到底有啥区别呢?...
在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ". 但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"He ...
- Spring 和 Spring Boot 之间到底有啥区别?
概述 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,相信对于用了 ...
- spring boot security ajax_Spring 和 SpringBoot 之间到底有啥区别?
来源:uee.me/cNDC8 概述 对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了 ...
- php中include和require,在PHP中include和require到底有什么区别呢?
在PHP中include和require到底有什么区别呢?看这里的例子就知道了 include.php3的运行结果是: 这是inc1.inc文件中的一个变量的值! 这是inc2.inc文件中的一个变量 ...
- Task.Factory.StartNewTResult 和 Task.RunTResult 到底有什么区别?
前言 这不是和<Task.Factory.StartNew 和 Task.Run 到底有什么区别?>一样吗,怎么又写一篇? 起先我也是这么觉得的,但实际发现并非如此. 实现代码 查看这 2 ...
- spring揭秘_被问到了! Spring 和 Spring Boot 之间到底有啥区别?
相信很多小伙伴和我一样,常用Spring 和Spring Boot 但是就是没有研究二者之间到底有什么区别? 今天就来大揭秘 ↓ 概述 对于 Spring和 SpringBoot到底有什么区别,我听到 ...
- python调试和测试有什么区别和联系_软件测试和测试开发到底有什么区别跟联系?...
对于没有进入IT领域的同学而言,软件测试并不陌生,但如果听到测试开发,他们一定会感到十分困惑,这究竟是测试还是开发呢? 按照字面意思理解,大家或许会觉得测试开发是指既能开发产品又能测试产品的" ...
最新文章
- supervisor 守护php,laravel队列之Supervisor守护进程(centos篇)
- SQL工具-技术支持工具
- c 调用c语言形参为double,C学生作业,’%f’需要’float *’类型的参数,但参数2的类型为’double *’...
- Python基础概念_2_基础概念
- 微软确认5月2日召开新品发布会 8天后就是Build 2017大会
- 窗体间的跳转传值 1124
- linux 指针什么意思,在linux中获取指向结构设备指针的更简洁方法是什么?
- 如何全局自动化注册异步组件?
- Splash广告界面
- PDFSAM:简朴好用的 PDF 抢救器材
- Typed DataSet的批量操作优化
- mysql同步row模式_mysql行模式(ROW)主从同步测试及错误修复
- quartus 13.1自带仿真测试流程
- 创建三维零件的DH坐标系
- Linux安装MySQL5.7
- 【ArcGIS】去除影像黑边的几种方法
- 三角形中的欧拉公式证明过程
- php开发erp思路,ERP遇到业务逻辑问题,求思路
- 萝卜新版APP一键云端打包/无需电脑/无需AS工具
- 众筹开班你说了算!UI设计+前端开发一站式打包学
热门文章
- 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
- centos 6安装报错
- 连续投影算法_中航国画荣获“2020 IAV国际视听嘉年华” 大屏幕投影显示行业三大奖项!...
- VMware Tools安装和卸载
- luogu 1484\1792 种树 奇怪的贪心可反悔
- pycharm中如何正确配置pyqt5
- linux服务器上如何显示工作路径
- unity读取Text
- Windows下Visual studio 2013 编译 Audacity
- Redis: Useful commands