咨询区

  • Rana

请问在xml操作中,XElementXDocument 到底有什么区别?

回答区

  • 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()

点评区

  1. XDocument 表示的是整个xml文档,如果你想操作整个xml,那就建议使用。

  2. XElement 表示的是 xml 元素,它只是 xml 的一个内部组成部分而已。

XElement 和 XDocument 到底有什么区别?相关推荐

  1. attachEvent 与addEventListener到底有什么区别呢?

    2019独角兽企业重金招聘Python工程师标准>>> attachEvent 与addEventListener到底有什么区别呢?总结如下: 一.适应的浏览器版本不同 attach ...

  2. Union和Union All到底有什么区别

    转自:https://www.cnblogs.com/wen-zi/p/9133754.html 以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面 ...

  3. 在php中单引号和双引号的区别错误的是___________,浅谈PHP中单引号和双引号到底有啥区别呢?...

    在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ". 但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"He ...

  4. Spring 和 Spring Boot 之间到底有啥区别?

    概述 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,相信对于用了 ...

  5. spring boot security ajax_Spring 和 SpringBoot 之间到底有啥区别?

    来源:uee.me/cNDC8 概述 对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了 ...

  6. php中include和require,在PHP中include和require到底有什么区别呢?

    在PHP中include和require到底有什么区别呢?看这里的例子就知道了 include.php3的运行结果是: 这是inc1.inc文件中的一个变量的值! 这是inc2.inc文件中的一个变量 ...

  7. Task.Factory.StartNewTResult 和 Task.RunTResult 到底有什么区别?

    前言 这不是和<Task.Factory.StartNew 和 Task.Run 到底有什么区别?>一样吗,怎么又写一篇? 起先我也是这么觉得的,但实际发现并非如此. 实现代码 查看这 2 ...

  8. spring揭秘_被问到了! Spring 和 Spring Boot 之间到底有啥区别?

    相信很多小伙伴和我一样,常用Spring 和Spring Boot 但是就是没有研究二者之间到底有什么区别? 今天就来大揭秘 ↓ 概述 对于 Spring和 SpringBoot到底有什么区别,我听到 ...

  9. python调试和测试有什么区别和联系_软件测试和测试开发到底有什么区别跟联系?...

    对于没有进入IT领域的同学而言,软件测试并不陌生,但如果听到测试开发,他们一定会感到十分困惑,这究竟是测试还是开发呢? 按照字面意思理解,大家或许会觉得测试开发是指既能开发产品又能测试产品的" ...

最新文章

  1. supervisor 守护php,laravel队列之Supervisor守护进程(centos篇)
  2. SQL工具-技术支持工具
  3. c 调用c语言形参为double,C学生作业,’%f’需要’float *’类型的参数,但参数2的类型为’double *’...
  4. Python基础概念_2_基础概念
  5. 微软确认5月2日召开新品发布会 8天后就是Build 2017大会
  6. 窗体间的跳转传值 1124
  7. linux 指针什么意思,在linux中获取指向结构设备指针的更简洁方法是什么?
  8. 如何全局自动化注册异步组件?
  9. Splash广告界面
  10. PDFSAM:简朴好用的 PDF 抢救器材
  11. Typed DataSet的批量操作优化
  12. mysql同步row模式_mysql行模式(ROW)主从同步测试及错误修复
  13. quartus 13.1自带仿真测试流程
  14. 创建三维零件的DH坐标系
  15. Linux安装MySQL5.7
  16. 【ArcGIS】去除影像黑边的几种方法
  17. 三角形中的欧拉公式证明过程
  18. php开发erp思路,ERP遇到业务逻辑问题,求思路
  19. 萝卜新版APP一键云端打包/无需电脑/无需AS工具
  20. 众筹开班你说了算!UI设计+前端开发一站式打包学

热门文章

  1. 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
  2. centos 6安装报错
  3. 连续投影算法_中航国画荣获“2020 IAV国际视听嘉年华” 大屏幕投影显示行业三大奖项!...
  4. VMware Tools安装和卸载
  5. luogu 1484\1792 种树 奇怪的贪心可反悔
  6. pycharm中如何正确配置pyqt5
  7. linux服务器上如何显示工作路径
  8. unity读取Text
  9. Windows下Visual studio 2013 编译 Audacity
  10. Redis: Useful commands