linq查询xml

1.加载xml字符串

XElement root = XElement.Parse(@"<?xml version=‘1.0‘ encoding=‘utf-8‘?>
<Items>
  <Item>
    <Id>1</Id>
    <Name>Name1</Name>
    <Description>Test1</Description>
    <Children>
      <Item>
        <Id>1.1</Id>
        <Name>Name1.1</Name>
        <Description>Test1.1</Description>
      </Item>
    </Children>
  </Item>
  <Item>
    <Id>2</Id>
    <Name>Name2</Name>
    <Description>Test2</Description>
  </Item>
</Items>

    ");

            var elements = root.Elements("Item");//root下的第一层Item(Id为1和2)

            XElement firstItem = root.Element("Item").Element("Name"); //第一个Item下的Name(Id为1)

            var descendants = root.Element("Item").Descendants("Name");//第一个Item下的所有Name(包括Children下的,Id为1和1.1)

            var xElements=root.Descendants("Name");//root下的所有子代的Name(Id为1,1.1,2)

2.直接加载文件:

var users = XElement.Load("TemplateUser.config").Elements("user");

var user = users.FirstOrDefault();

var Account = user.Element("Account").Value.ToString();

3.XmlDocument转换为XDocument

XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlStr);   //xml字符串转成xml文档对象
                  

XDocument xdoc =doc.ToXDocument(); //xmldocument转成xdoccument 扩展方法
var eventId = xdoc.Document.Root.Element("EventID"); //根节点下的eventid节点
if (eventId != null)
    {

MessageBox.Show(eventId.Value); //15

}

扩展方法

public static class XmlDocumentExtensions
    {
        public static XDocument ToXDocument(this XmlDocument document)
        {
            return document.ToXDocument(LoadOptions.None);
        }

public static XDocument ToXDocument(this XmlDocument document, LoadOptions options)
        {
            using (XmlNodeReader reader = new XmlNodeReader(document))
            {
                return XDocument.Load(reader, options);
            }
        }
    }

From:http://www.cnblogs.com/xuejianxiyang/p/5377486.html

时间: 2024-08-21 11:52:23

linq查询xml的相关文章

Silverlight 使用IsolatedStorage新建XML文件,并且用LINQ查询XML

代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System; using System.Linq; using System.Windows.Shapes; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO

Linq之Linq to XML

目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将word文档另存为xml文件,这也提供了一种通过操作xml,操作word的一种方式)以及数据库中,都可以看到 XML.而linq to xml提供了一种操作xml更便捷的方式. 系列文章 Linq之Lambda表达式初步认识 Linq之Lambda进阶 Linq之隐式类型.自动属性.初始化器.匿名类 Li

hibernate mapping文件中 xmlns会导致linq to xml 查询不到对应的节点

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Linq; using System.Xml.Linq; using System.Xml; using System.Windows.Forms; namespace ConsoleApplication27 { class Program

C#程序中使用LINQ to XML来查询XML格式数据的实例

LINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework 编程语言中处理 XML.它将 XML 文档置于内存中,这一点很像文档对象模型 (DOM). 您可以查询和修改 XML 文档,修改之后,可以将其另存为文件,也可以将其序列化然后通过网络发送. 但是,LINQ to XML 与 DOM 不同: 它提供一种新的对象模型,这是一种更轻量的模型,使用也更方便,这种模型利用了 VisualC# 2008 在语言方面的改进.LINQ to X

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

自己也写了那么多,但还有很多不懂,有点浮躁吧,但饭还是要吃啊,说说LINQ TO XML吧. LINQ TO XML位于System.Xml.Linq程序集,并且大多数类型位于System.Xml.Linq命名空间.该命名空间下几乎所有类型都以X为前缀;普通DOM API中的Element对应LINQ TO XML中的XElement.列举下都有哪些类型. XName:表示元素和特性的名称 XNamespace:表示XML的命名空间,通常是一个URL XObject:是XNode和XAttrib

Linq学习之旅——LINQ查询表达式

1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. 概述 LINQ的全称是Language Integrated Query,中文译成“语言集成查询”.LINQ作为一种查询技术,首先要解决数据源的封装,大致使用了三大组件来实现这个封装,分别是LINQ to Object.LINQ to ADO.NET.LINQ to XML.它们和.NET语言的关系如下:

LINQ to XML(1)

LINQ to XML可以两种方式和XML配合使用.第一种方式是作为简化的XML操作API,第二种方式是使用LINQ查询工具.下面我使用的是第二种方式. 主要内容:用LINQ查询语句对XML文件里的数据进行筛选. 此方法优点: 1.我们可以使用单一语句自顶向下创建XML树. 2.我们可以使用包含树的XML文档在内存中创建并操作XML. 3.我们可以不适用Text子节点来创建和操作字符串节点. 4.一个最大的不同(改进)是,在搜索一个XML树时,不需要遍历它.相反只需要查询树并让它返回想要的结果.

LINQ to XML 实战

LINQ to XML 轴定义:创建XML树或将XML文档加载到XML树之后,可以进行查询,从而查找元素并检索它们的值. 两类轴方法:-一些轴就是XELement和XDocument类中返回IEnumerable(T)集合的方法.-另一些轴方法是Extensions类中的扩展方法.实现为扩展方法的轴对集合进行操作,然后返回集合.XContainer是XElement的基类! -常见的轴方法:-XContainer.Elements()返回集合 -XContainer.Descendants()返

Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下:   1.UI控件与布局     2.MVVM     3.数据绑定     4.await/async     5.Linq查询     6.WCF RIA Services     7.序列化     8.委托与事件 1.UI控件与布局 常用的主要是Grid.StackPanel.Border,其中最常用的的是Grid,是一