假如有以下XML:

<?xml version="1.0" encoding="utf-8" ?>
-   <export>
-     <packages>
-       <package id="111670618065528135">
          <path>D:\888\</path>
-         <files>
-           <file id="111670623796596151">
              <path>\韩寒_要自由.htm</path>
              <category>民主</category>
          </file>
-           <file id="111670623796594149">
            <path>\谈谈韩寒三论.htm</path>
            <category>民主\中国</category>
          </file>
-           <file id="111670623796595150">
            <path>\韩寒_我的2011.htm</path>
            <category>民主\中国</category>
           </file>
-           <file id="111670623796596151">
            <path>\韩寒_要自由.htm</path>
            <category>民主\中国</category>
          </file>
-           <file id="111670623796597152">
            <path>\韩寒_说民主.htm</path>
            <category>民主\中国</category>
          </file>
-           <file id="111670623796599153">
            <path>\韩寒_谈革命.htm</path>
            <category>民主\中国</category>
          </file>
        </files>
        <files>

-           <file id="111670623796596151">
              <path>\韩寒_要自由.htm</path>
              <category>民主</category>
          </file>
-           <file id="111670623796594149">
            <path>\谈谈韩寒三论.htm</path>
            <category>民主\中国</category>
          </file>
-           <file id="111670623796595150">
            <path>\韩寒_我的2011.htm</path>
            <category>民主\中国</category>
           </file>
          </files>
        </package>
       <package id="111670618065528135">

          <path>D:\888\</path>
-         <files>
-           <file id="111670623796596151">
              <path>\韩寒_要自由.htm</path>
              <category>民主</category>
          </file>
-           <file id="111670623796594149">
            <path>\谈谈韩寒三论.htm</path>
            <category>民主\中国</category>
          </file>
        </files>
      </package>
      </packages>
    </export>
 
可采用以下方式进行读取
 
 class Program
    {
        public static XElement InitializeXMLDate()
        {
            string XMLPath = @"D:\附件1 - 副本.xml";
            if(!File.Exists(XMLPath))             {
                throw new FileNotFoundException("The XML data file is missing");
            }             XElement data = XElement.Parse(File.ReadAllText(XMLPath));
            return data;
        }         static void Main(string[] args)
        {             var packages = InitializeXMLDate().Elements().Where(element => element.Name.ToString() == "packages");
            foreach (var package in packages.Elements())
            {
                Console.WriteLine(package.Attribute("id").Value);
                Console.WriteLine(package.Element("path").Value);
               // var files = package.Elements().Where(element => element.Name.ToString()=="file");
                foreach (var file in package.Elements().Where(element => element.Name.ToString()=="files"))
                {
                    foreach (var property in file.Elements().Where(element => element.Name.ToString() == "file"))
                    {
                        Console.WriteLine(string.Format("{0}--------{1}", property.Element("path").Value, property.Element("category").Value));
                    }
                    Console.WriteLine("****");
                }
                Console.WriteLine("-----------------------------------");
            }             Console.ReadKey();
        }
    }
 

Linq to XML的练习的更多相关文章

  1. LINQ系列:LINQ to XML类

    LINQ to XML由System.Xml.Linq namespace实现,该namespace包含处理XML时用到的所有类.在使用LINQ to XML时需要添加System.Xml.Linq. ...

  2. LINQ系列:LINQ to XML操作

    LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...

  3. LINQ系列:LINQ to XML查询

    1. 读取XML文件 XDocument和XElement类都提供了导入XML文件的Load()方法,可以读取XML文件的内容,并转换为XDocument或XElement类的实例. 示例XML文件: ...

  4. Linq to Xml读取复杂xml(带命名空间)

    前言:xml的操作方式有多种,但要论使用频繁程度,博主用得最多的还是Linq to xml的方式,觉得它使用起来很方便,就用那么几个方法就能完成简单xml的读写.之前做的一个项目有一个很变态的需求:C ...

  5. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  6. c#操作xml文件(XmlDocument,XmlTextReader,Linq To Xml)

    主界面

  7. Linq对XML的简单操作

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

  8. LINQ to XML 编程基础

    1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocumen ...

  9. XML基础学习02<linq to xml>

    Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...

  10. C# ~ 从 XML 到 Linq 到 Linq to XML

    .XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...

随机推荐

  1. C# ICSharpCode.SharpZipLib

    C# ICSharpCode.SharpZipLib.dll文件压缩和解压功能类整理,上传文件或下载文件很常用 工作中我们很多时候需要进行对文件进行压缩,比较通用的压缩的dll就是ICSharpCod ...

  2. form表单target的用法,实现无刷新提交页面

    form表单的target,当将iframe设置为隐藏时,可以实现当前页表单提交而不进行跳转刷新.代码如下,首页在页面里准备一个form表单和一个iframe. <form action=&qu ...

  3. &lt;七&gt;阅读&lt;&lt;大话设计模式&gt;&gt;该模板模型

    哈哈,没想到.在不知不觉中拥有第七书面文章,看来我仍然非常有毅力. 上坚持一件事非常easy,仅仅要你每天不断的朝着自己的目标出发,不论什么事情都不会挡着你.好了大道理不多说,谁都懂.那看看这个模板模 ...

  4. JS Tree

    jQuery插件实例七:一棵Tree的生成史 在需要表示级联.层级的关系中,Tree作为最直观的表达方式常出现在组织架构.权限选择等层级关系中.典型的表现形试类似于: 一颗树的生成常常包括三个部分:1 ...

  5. 玩转Vim-札记

    玩转Vim-札记 距上篇博文已有一周有余,上次主要介绍了编辑器之神Vim的起源.安装并介绍了两种模式以及一些简单的操作.本次将继续对Vim的使用进行介绍. 登堂入室 首先接着说移动吧: 1 0 → 数 ...

  6. MVC5控制器、路由、返回类型、选择器、过滤器

    ASP.NET MVC5 学习笔记-1 控制器.路由.返回类型.选择器.过滤器   [TOC] 1. Action 1.1 新建项目 新建项目->Web->Asp.net Web应用程序, ...

  7. POJ1320 Street Numbers【佩尔方程】

    主题链接: http://poj.org/problem?id=1320 题目大意: 求解两个不相等的正整数N.M(N<M),使得 1 + 2 + - + N = (N+1) + - + M.输 ...

  8. Monkey源码分析之事件注入

    本系列的上一篇文章<Monkey源码分析之事件源>中我们描述了monkey是怎么从事件源取得命令,然后将命令转换成事件放到事件队列里面的,但是到现在位置我们还没有了解monkey里面的事件 ...

  9. CSS知识总结之浏览器(持续更新)

    web页面浏览器渲染过程 1.解析html文件,并构建DOM树: 在DOM树中,每一个html标签都有一个对应的节点,并且每一个文本也有一个对应 的节点(js的textNode),DOM树的根节点就是 ...

  10. HEAP CORRUPTION DETECTED

    发生主要是由于这个问题给写入超出预分配的空间,注意检查越界情况 版权声明:本文博客原创文章,博客,未经同意,不得转载.