很多时候我们需要用到Xml文件,但是什么是Xml文件呢?
以下我们用一个例子来说明:testResult.xml文件

<?xml version="1.0" encoding="utf-8" ?><Columns><column id="序号"><name>序号</name></column><column id="检验项目"><name>检验项目</name></column><column id="单位"><name>单位</name></column><column id="标准要求"><name>标准要求</name></column><column id="检验结果"><name>检验结果</name></column><column id="结论"><name>结论</name></column></Columns>

以上就是一个Xml文件,我们知道,Xml文件是用来存储数据的,那么我们如何遍历这些数据呢?
其实最简单的方法,就是使用Linq:

       private void GetTestResultXml()        {            List<string> iTestResultXml=new List<string>();//定义并从xml文件中加载节点(根节点)            XElement rootNode = XElement.Load(@"..\..\Xml\testResult.xml");   //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......)            IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("column")select target;foreach (XElement node in targetNodes)            {                iTestResultXml.Add(node.Value);            }        }

这样我们就可以获得<column/>标签里所有的数据了,并把他们存储到列表iTestResultXml中。
在testResult.xml文件中,我们看到,<column/>标签设置了本身的id,而此id并不是他的数据,而是他的一个属性,
那么如果我们想获得他的属性而不是他标签里的内容该如何获得呢?

private void GetTestResultXml()        {            List<string> iXmlID = new List<string>();//定义并从xml文件中加载节点(根节点)            XElement rootNode = XElement.Load(@"..\..\Xml\testResult.xml");   //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......)            IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("column")select target;foreach (XElement node in targetNodes)            {                 iXmlID.Add(node.Attribute("id").Value);   //获取指定属性的方法            }        }

这样我们就获取了<column/>标签里id属性的列表iXmlID。

转载于:https://www.cnblogs.com/jiajiayuan/archive/2012/02/09/2343512.html

Xml之Linq遍历相关推荐

  1. python里遍历筛选xml文件_python xml.etree.ElementTree遍历xml所有节点实例详解

    python xml.etree.ElementTree遍历xml所有节点 XML文件内容: 代码: #-*- coding: UTF-8 -*- # 从文件中读取数据 import xml.etre ...

  2. php循环获取xml节点,PHP_PHP遍历XML文档所有节点的方法,本文实例讲述了PHP遍历XML文档 - phpStudy...

    PHP遍历XML文档所有节点的方法 本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: J J J Manager Nati ...

  3. 信息树和XML文件的遍历及XML文件的应用

    function Save() { //将INfomationTree中的不是Http开头的组,保存到本地,然后再从本地上传到服务器端 var IInformationTree = document. ...

  4. LINQ to XML 编程基础

    http://www.cnblogs.com/luckdv/articles/1728088.html?login=1 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快 ...

  5. LINQ学习之旅——最后一站LTX之XML基本操作(下)

    上一节,讲解了LINQ TO XML基本操作中的创建,今天继续讲解LINQ TO XML操作的下半部分:输入输出.遍历.查询及修改. 1.在LINQ TO  XML中的输出和输出操作主要由Save和L ...

  6. LINQ: Reconciling objects, relations and XML in the .NET framework

    自己译的,感觉意译挺多,不中足之处还请见谅,也算帮找这篇文章的朋友一个忙,转载前没有见过相关协议与说明,如果此篇翻译侵犯了作者权益,请与本人联系,本人将关闭此文章 LINQ: Reconciling  ...

  7. Linq To Xml学习 - 1.LINQ to XML 概述

    LINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework 编程语言中处理 XML. 它将 XML 文档置于内存中,这一点很像文档对象模型 ...

  8. 基于Visual Studio2010讲解LINQ读出数据库数据生成XML

    LINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework 编程语言中处理 XML.  LINQ to XML 最重要的优势是它与 Lang ...

  9. LINQ To XML 入门(3)

    Some Common Operations using LINQ To XML - Part III   In this article, we will explore some common ' ...

最新文章

  1. 360浏览器打不开qq空间_刘连康:解决电脑网络正常,浏览器打不开的问题
  2. 设计模式のFactoryPattern(工厂模式)----创建模式
  3. Cisco PBR Case2
  4. oracle约束 1或0,Oracle笔记(十) 约束
  5. rsync 全网备份
  6. MySQL数据库性能优化方法,一篇给你总结了
  7. 小米5splus(高配版/全网通)解BL锁教程申请BootLoader解锁教程
  8. 超微小加速度传感器ADXL362设计
  9. BP神经网络的应用—分析
  10. 只读更新全程图解教程(转)
  11. matlab怎么表示分块矩阵,急求一个测量矩阵采用分块多项式矩阵时怎样引用的代码!!!...
  12. ROS在同一节点同时订阅和发布消息
  13. 提高效率:10款好用的谷歌chrome浏览器插件、扩展程序
  14. vxWorks6.6下基于vxBus的以太网驱动开发
  15. 如何快速查询学术会议
  16. SpringFramework、SpringBoot、SpringCloud的区别
  17. torch.nn.Embedding的使用
  18. 男人在神永恒国度里的沉思录
  19. 全球与中国PH和ORP通用分析仪市场深度研究分析报告
  20. Linux环境变量和命令行参数

热门文章

  1. cisco ***笔记
  2. SQL2005服务器上安装SQL2008失败
  3. [保存]C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
  4. 消息系统Kafka介绍
  5. 表单元素值获取方式js及java方式
  6. Android 实现静默安装
  7. preventDefault, stopPropagation, stopImmediatePropagation 三者的区别
  8. (Access denied for user 'root'@'localhost' (using password: NO))
  9. linux查找有用日志常用技巧
  10. Just a test