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

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

正文

<?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. NS3 日志(Logging)、命令行参数、Tracing系统概述(转载)

    NS-3日志子系统的提供了各种查看仿真结果的渠道: 一.使用Logging Module 1 [预备知识]日志级别及其对应的宏 NS-3 提供了若干个日志级别来满足不同的 Debug 需求,每一级的日 ...

  2. iOS - OC NSTimeZone 时区

    前言 @interface NSTimeZone : NSObject <NSCopying, NSSecureCoding> NSTimeZone 表示时区信息. 1.NSTimeZon ...

  3. hdu4570Multi-bit Trie

    链接 13年长沙邀请赛的题,神题意~ 题意:摘自http://blog.csdn.net/libin56842/article/details/9703457 这题题意确实有点难懂,起码对于我这个英语 ...

  4. 省市县distpicker的使用

    下载地址https://github.com/fengyuanchen/distpicker 1.引入 <!-- 引入地址 begin --> <script type=" ...

  5. Android 项目中常用到的第三方组件

    项目中常用到的第三方组件 1 社会化分享ShareSDK-Core-2.5.9.jarShareSDK-QQ-2.5.9.jarShareSDK-QZone-2.5.9.jarShareSDK-Sin ...

  6. form属性method="get/post

    form属性method="get/post"的两种方式对比 在B/S应用程序中,前台与后台的数据交互,都是通过HTML中Form表单完成的.Form提供了两种数据传输的方式——g ...

  7. B树索引

    在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能高.在OLAP中尤其明显,要完全理解索引的 ...

  8. 自定义MVC Html

    自定义ASP.NET MVC Html辅助方法 在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明.有时候,我们不想重复地写一些HTML代码,或者MS没有提供我 ...

  9. Kafka的配置文件详细描述

    在kafka/config/目录下面有3个配置文件: producer.properties consumer.properties server.properties (1).producer.pr ...

  10. django在pyhton2.7 和 python3.* 之间代码和睦相处的方法

    “祥”龙第一掌: from __future__ import unicode_literals from django.utils.encoding import python_2_unicode_ ...