/检索元素集合

XElement po = XElement.Load("c:/test.xml");
            IEnumerable<XElement> childElements =
                //from el in po.Descendants("Book")
                from el in po.Descendants("Title")
                select el;
            foreach (XElement el in childElements)
                Console.WriteLine("Name: " + (string)el);

Console.ReadLine();

<?xml version="1.0" encoding="utf-8"?>
<!--This is a comment.-->
<?xml-stylesheet href='mystyle.css' title='Compact' type='text/css'?>
<Pubs>
  <Book>
    <Title>Artifacts of Roman Civilization</Title>
    <Author>Moreno, Jordao</Author>
  </Book>
  <Book>
    <Title>Midieval Tools and Implements</Title>
    <Author>Gazit, Inbar</Author>
  </Book>
</Pubs>
<!--This is another comment.-->

查找具有值为“Billing”的 Type 属性的 Address 元素
            XElement root = XElement.Load("c:/PurchaseOrder.xml");
            IEnumerable<XElement> address =
                from el in root.Elements("Address")
                where (string)el.Attribute("Type") == "Billing"
                select el;
            foreach (XElement el in address)
                Console.WriteLine(el);

查找 Test 元素,该元素包含具有值为“Examp2.EXE”的 CommandLine 子元素
            XElement root = XElement.Load("TestConfig.xml");
            IEnumerable<XElement> tests =
                from el in root.Elements("Test")
                where (string)el.Element("CommandLine") == "Examp2.EXE"
                select el;
            foreach (XElement el in tests)
                Console.WriteLine((string)el.Attribute("TestId"));

查询树根部的子元素
                        File.WriteAllText("Test.xml", @"<Root>
                                                                    <Child1>1</Child1>
                                                                    <Child2>2</Child2>
                                                                    <Child3>3</Child3>
                                                                    </Root>");

Console.WriteLine("Querying tree loaded with XElement.Load");
                        Console.WriteLine("----");
                        XElement doc = XElement.Load("Test.xml");
                        IEnumerable<XElement> childList =
                            from el in doc.Elements()
                            select el;
                        foreach (XElement e in childList)
                            Console.WriteLine(e);

具有 Type 属性等于“Shipping”的子 Address 元素和等于“NY”的子 State 元素的所有 PurchaseOrder 元素
            XElement root = XElement.Load("PurchaseOrders.xml");
            IEnumerable<XElement> purchaseOrders =
                from el in root.Elements("PurchaseOrder")
                where
                    (from add in el.Elements("Address")
                     where
                         (string)add.Attribute("Type") == "Shipping" &&
                         (string)add.Element("State") == "NY"
                     select add)
                    .Any()
                select el;
            foreach (XElement el in purchaseOrders)
                Console.WriteLine((string)el.Attribute("PurchaseOrderNumber"));

XElement root = XElement.Parse(@"<Root>
                                              <Child1>
                                                <Text>Child One Text</Text>
                                                <Type Value=""Yes""/>
                                              </Child1>
                                              <Child2>
                                                <Text>Child Two Text</Text>
                                                <Type Value=""Yes""/>
                                              </Child2>
                                              <Child3>
                                                <Text>Child Three Text</Text>
                                                <Type Value=""No""/>
                                              </Child3>
                                              <Child4>
                                                <Text>Child Four Text</Text>
                                                <Type Value=""Yes""/>
                                              </Child4>
                                              <Child5>
                                                <Text>Child Five Text</Text>
                                              </Child5>
                                            </Root>");
            var cList =
                from typeElement in root.Elements().Elements("Type")
                where (string)typeElement.Attribute("Value") == "Yes"
                select (string)typeElement.Parent.Element("Text");
            foreach (string str in cList)
                Console.WriteLine(str);

<?xml version="1.0"?>
<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
  <Address Type="Shipping">
    <Name>Ellen Adams</Name>
    <Street>123 Maple Street</Street>
    <City>Mill Valley</City>
    <State>CA</State>
    <Zip>10999</Zip>
    <Country>USA</Country>
  </Address>
  <Address Type="Billing">
    <Name>Tai Yee</Name>
    <Street>8 Oak Avenue</Street>
    <City>Old Town</City>
    <State>PA</State>
    <Zip>95819</Zip>
    <Country>USA</Country>
  </Address>
  <DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>
  <Items>
    <Item PartNumber="872-AA">
      <ProductName>Lawnmower</ProductName>
      <Quantity>1</Quantity>
      <USPrice>148.95</USPrice>
      <Comment>Confirm this is electric</Comment>
    </Item>
    <Item PartNumber="926-AA">
      <ProductName>Baby Monitor</ProductName>
      <Quantity>2</Quantity>
      <USPrice>39.98</USPrice>
      <ShipDate>1999-05-21</ShipDate>
    </Item>
  </Items>
</PurchaseOrder>

转载于:https://www.cnblogs.com/marslin/archive/2013/06/04/3118001.html

Linq to xml:检索相关推荐

  1. LINQ to XML 常用操作(转)

    查找具有特定属性的元素 XElement root = XElement.Load("PurchaseOrder.xml"); IEnumerable<XElement> ...

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

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

  3. LINQ to XML 编程基础

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

  4. 神兵利器——使用LINQ to SQL检索和操作数据库

    自.NET 3.0开始,LINQ(Language Integrated Query,整合查询语言)便逐渐出现在.NET开发的各个角落,它不仅提供了一种用于快速检索结构化标记语言(如XML)的方法,而 ...

  5. LINQ to XML 建立,读取,增,删,改

    LINQ to XML的出现使得我们再也不需要使用XMLDocument这样复杂的一个个的没有层次感的添加和删除.LINQ可以使的生成的XML文档在内存中错落有致.下面以一个小的例子说名LINQ to ...

  6. Linq初级班 Linq To XML体验(基础篇)

    LINQ To XML体验(基础) 这两天开始学习LINQ to XML的知识,我会继续把自己的感想和示例发布给初学者们学习的,一样欢迎高手们多多指点,请勿使用过激语言,针锋相对,我是个初学者,自知还 ...

  7. LINQ之路19:LINQ to XML之X-DOM更新、和Value属性交互

    本篇包含两部分内容:X-DOM更新一节中我们会详细讨论LINQ to XML的更新方式,包括Value的更新.子节点和属性的更新.通过Parent节点实现更新: 和Value属性交互一节会详细讨论XE ...

  8. [Linq]Linq To Xml (待整理)

    [Linq]Linq To Xml (待整理) Linq To Xml (待整理) posted on 2012-02-28 10:38 水墨.MR.H 阅读(...) 评论(...) 编辑 收藏 转 ...

  9. LINQ to XML .Net 3.5 中的新XML对象

    System.Xml.Linq 命名空间中,有一系列新的LINQ to XML 帮助对象,使处理内存中的XML文档变的非常简单. 示例使用的Hamlet.xml来源自C#高级编程源代码. XDocum ...

  10. 24.C#LINQ TO XML(十二章12.3)

    自己也写了那么多,但还有很多不懂,有点浮躁吧,但饭还是要吃啊,说说LINQ TO XML吧. LINQ TO XML位于System.Xml.Linq程序集,并且大多数类型位于System.Xml.L ...

最新文章

  1. gz文件解压命令 linux_linux常用命令和文件上传(FZ)、解压、配置环境变量(JDK)
  2. C++中四种类型转换方式(ynamic_cast,const_cast,static_cast,reinterpret_cast)
  3. python 读取大文件_Python读取大文件
  4. RecyclerView因版本问题无法加载
  5. vuejs滚动条_vuescroll-一款基于vuejs2.x的虚拟滚动条
  6. java_函数的重载
  7. Oracle入门(十三A)之Select
  8. 在卷积层的运用_Conv 卷积层
  9. tornado学习笔记day06-应用安全
  10. 《Ext JS高级程序设计》节选:在CRUD操作中restful的设置以及使用Ext.Direct的问题...
  11. linux打开光盘文件怎么打开方式,ISO是什么文件?用什么打开?
  12. linux查看文件第三行,学习linux第三课!新手必须掌握的linux命令
  13. ARKit何以从同类技术中胜出?
  14. WebRTC学习资料大全
  15. Android Studio简介
  16. 索爱小蜜蜂扩音器怎么样啊~
  17. nssa和stub_STUB与NSSA区域总结
  18. linux 配置dns域名服务器,linux下DNS配置及域名解析服务
  19. ue5-预计算可视性体积(PVS)
  20. java聊天系统异常问题_聊天室bug问题

热门文章

  1. 一种全新的VDI桌面虚拟化方案(X9BYOD)
  2. 团队管理心得--建团队,管事理人
  3. php自定义函数指定参数类型,php – Doctrine:如何添加带可选参数的自定义函数?...
  4. python版本时间_python 获取文件版本号和修改时间
  5. linux 设备 总线 驱动 模型
  6. SpringMVC小结(四)
  7. [渝粤教育] 浙江大学 2021 2022秋数码摄影技术 参考 资料
  8. Docker系列(八)Docker的CS模式、守护进程的配置和操作
  9. 【浙江大学PAT真题练习乙级】1005 继续(3n+1)猜想 (25分) 真题解析
  10. python中将数组存储为二进制文件并读取