开始内容之前先分享一段话

有时候,当你知道要做什么的时候就做的很快,比如你要实现个功能,码字的活儿不算很难,做个检索也不会有什么难倒你的。
但是,做着做着,你发现好像世界上的工作都在重复,于是你有种心要飞起来的感觉,但总觉得脚步速度太慢,你开始抱怨进度,公司也对你充满期待,于是会给你配备助手,一来二去,你成为了小领导,你不再自己编码了,而且要做什么也都告诉你的助手们了,这时,你陷入了沉思,我该干什么呢?
偶然的,你发现某些事情朝着错误的方向发展,用户开始抱怨了,你跳出来,指出助手们的错误,然后事情过去了,你却停不下来,你怕这样的事情再次发生,于是你开始更深的沉思,这次你学会了思考,我要做的就是保持优秀的团队力量,如何保持呢?古板不是个办法,因为古板会使你的团队成员走你的老路,他们会感到单一、重复、枯燥。。。
你不能再去写代码以逃避无休无止的思考,因为你写的那点代码也起不到作用,还冷不丁的出个意外需要你公关,你很想突破,突破思维的限制,你发现突破不仅是你的挑战,更是你唯一的出路。

正文

<?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(@"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。

参考地址:http://docs.google.com/fileview?id=0B9T0APtVi1fyNjNhM2I4NmEtMTdmOS00NTUzLTljZTUtMDdhZjM4NzIzMGEz&hl=zh_CN

http://www.cnblogs.com/jiajiayuan/archive/2012/02/09/2343512.html

使用Linq快速的操作XML的更多相关文章

  1. Linq to XML操作XML文件

    LINQ的类型 在MSDN官方文件中,LINQ分为几种类型: . LINQ to Objects(或称LINQ to Collection),这是LINQ的基本功能,针对集合对象进行查询处理,包括基本 ...

  2. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  3. C#基础知识---Linq操作XML文件

    概述 Linq也就是Language Integrated Query的缩写,即语言集成查询,是微软在.Net 3.5中提出的一项新技术. Linq主要包含4个组件---Linq to Objects ...

  4. 操作xml文档的常用方式

    1.操作XML文档的两种常用方式: 1)使用XmlReader类和XmlWriter类操作 XmlReader是基于数据流的,占用极少的内存,是只读方式的,所以速度极快.只能采用遍历的模式查找数据节点 ...

  5. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  6. 使用dom4j操作XML

    DOM4J介绍 DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点. DOM4J的使用 首先下载dom4j的JAR包,我用 ...

  7. 使用JDOM操作XML

    JDOM介绍 JDOM是使用Java语言编写的,用于读写及操作XML的一套组件,Jdom同时具有DOM修改文件的优点和SAX读取快速的优点. JDOM的使用 首先下载JDOM的JAR包,本文使用的是j ...

  8. C#操作XML方法集合

    一 前言 先来了解下操作XML所涉及到的几个类及之间的关系  如果大家发现少写了一些常用的方法,麻烦在评论中指出,我一定会补上的!谢谢大家 * 1 XMLElement 主要是针对节点的一些属性进行操 ...

  9. xpath 操作XML

    1.xpath 操作XML,底下部分代码被注释了,但是是完整功能,去除注释是正常使用的(有写命名和其他冲突,所以注释了) 总体有:完整读取xml,对xml的增删改查,对xml的特定操作 using S ...

随机推荐

  1. 大学生学习编程(PHP)

    在v2ex上看到一大三的求职实习,然后有人给出了建议,个人觉得也挺好,做个记录./  原帖地址 @ARjson问: 大三的学生党,求实习岗位,现居北京.后端PHP一年半开发经验,熟悉speedphp, ...

  2. 转-Android Studio *.jar 与 *.aar 的生成与*.aar导入项目方法

    主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置 ...

  3. 表单美化-原生javascript和jQuery多选按钮(兼容IE6)

    前些天我们讲了下单选按钮的美化今天来做表单元素多选按钮的美化.我们的想法是:利用多选按钮是否被选中和是否不给选择的特性来为按钮的父元素添加对应的样式,就是说用什么的样式是由按钮的状态来决定. 用到的图 ...

  4. Nginx基础知识之————日志管理

    一.Server段,可以看到如下类似信息 #access_log logs/host.access.log main; 说明该server, 它的访问日志的文件是  logs/host.access. ...

  5. Yii2.0 依赖注入(DI)和依赖注入容器的原理

    依赖注入和依赖注入容器 为了降低代码耦合程度,提高项目的可维护性,Yii采用多许多当下最流行又相对成熟的设计模式,包括了依赖注入(Denpdency Injection, DI)和服务定位器(Serv ...

  6. hiho_1139_二分+bfs搜索

    题目 给定N个点和M条边,从点1出发,到达点T.寻找路径上边的个数小于等于K的路径,求出所有满足条件的路径中最长边长度的最小值. 题目链接:二分     最小化最大值,考虑采用二分搜索.对所有的边长进 ...

  7. c++ 对象内存分配和虚函数

    1. c++类对象(不含虚函数)在内存中的分布 c++类中有四种成员:静态数据.非静态数据.静态函数.非静态函数. 1. 非静态数据成员放在每个对象内部,作为对象专有的数据成员 2. 静态数据成员被抽 ...

  8. CRLF CSRF XSS

    http://baike.baidu.com/link?url=BXWN2I6J23thrrm6JoEnAYvmNqp83llyaydaj5RYkq--tuJKSFuMuDMIoTPnKjthRUm3 ...

  9. noip赛前小结3

    嗯,这是第三份小结. 连续三天的小结. 这几天状态逐渐回来了. 前天3道题rk8左右. 昨天上午3道题rk7,但是有一道题考后1minAC了. 昨天晚上2道题AK了. 今天也3道题rk1了. 这个趋势 ...

  10. Java中this、super用法

     这节我们主要是区分this 和 super这两个关键字的用法 起初我根本弄不清楚this 和 super这两个关键字的用法,也不明白在代码实例中为什么既用this又用super,下面就是原因: 1. ...