LinQ To XML——用LinQ查询XML

将一个已知的XML放到XDocument 对象当中使用LINQ 查询非常的容易,下面是一个例子。

查找XML文档中的所有PERSONA元素显示结果个数,并遍历输出其值

 

public void MyDescendants()
        {
            XDocument xdoc = XDocument.Load(Server.MapPath("hamlet.xml"));
            //查找元素名为PERSONA 的元素
            var query = from people in xdoc.Descendants("PERSONA")
                        select people.Value;
            //people 是符合条件元素结果集 而people.Value;就是这个结果集的所有元素的值的序列
            Response.Write(query.Count() + " 个玩家被找到。");

            Response.Write("<p />他们是: <p />");

            foreach (var item in query)
            {
                //输出他们的值
                Response.Write( item + "<br />");

            }
        } 

通过URL 找到一个网络上的RSS XML文档,并查询。

public void MyRSS()
       {
           //通过下面的代码你可以看到一个简单的网页RSS阅读器
           XDocument xdoc = XDocument.Load(@"http://www.cnblogs.com/TerryFeng/rss");
           //找到channel元素集合
           var query = from rssFeed in xdoc.Descendants("channel")
                       select new
                       {
                           Title = rssFeed.Element("title").Value,//获取其下的title元素的值组成新结果集匿名对象的属性
                           Description = rssFeed.Element("description").Value,//获取其下的description元素的值组成新结果集匿名对象的属性
                           Link = rssFeed.Element("link").Value,//获取其下的link元素的值组成新结果集匿名对象的属性
                       };

           foreach (var item in query)
           {
               Response.Write("博客: " + item.Title + "<br />");
               Response.Write("描述: " + item.Description + "<br />");
               Response.Write("地址: " + item.Link + "<br /><p />");
           }

           //第二个查询,查询文档中的item元素,每个项目就是一个博客随笔
           var queryPosts = from myPosts in xdoc.Descendants("item")
                            select new
                            {
                                Title = myPosts.Element("title").Value,
                                Published = DateTime.Parse( myPosts.Element("pubDate").Value),
                                Description = myPosts.Element("description").Value,
                                Url = myPosts.Element("link").Value,
                                Comments = myPosts.Element("comments").Value,
                            };

           foreach (var item in queryPosts)
           {
               Response.Write("标题: " + item.Title + "<br />");
               Response.Write("发布日期: " + item.Published + "<br />");
               Response.Write("链接: " + item.Url + "<br />");
               Response.Write("内容: " + item.Description + "<br />");
               Response.Write("注释: " + item.Comments + "<br /><p />");
               

           }

           Console.ReadLine();
     
 }

        

时间: 2024-08-02 13:18:33

LinQ To XML——用LinQ查询XML的相关文章

asp查询xml的代码,实现了无刷新、模糊查询功能

xml|刷新|无刷新 asp查询xml的代码,实现了无刷新.模糊查询功能 <html><head><title>不刷新页面查询的方法</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><script language="javascript"><

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据 XQuery 是一个浏览/返回XML实例的标准语言. 它比老的只能简单处理节点的XPath表达式更丰富. 你可以同XPath一样使用.或是遍历所有节点,塑造XML实例的返回等. 作为一个查询语言, 你需要一个查询处理引擎. SQL Server 数据库通过XML数据类型方法的T-SQL 语句来处理XQuery. SQL Server 并不支持所有的X

java-jdom解析修改xml然后再查询数据时没有更新

问题描述 jdom解析修改xml然后再查询数据时没有更新 jdom解析修改xml文件然后再查询数据时,还是原来的数据没有更新,这是什么情况.

在oracle中查询xml表列内容显示不全,为什么???

问题描述 在oracle中查询xml表列内容显示不全,为什么??? 建立了一个包含xml列的表,也成功插入了xml项,但是用查询语句显示不全xml的内容,不知道为啥?? CREATE TABLE employees( eid int primary key, einfo xmltype ); insert into employees values(1,XMLType(bfilename('XMLDIR', 'einfoTest.xml'),nls_charset_id('GB2312') ))

linq根据传入数据集合查询对应子级数据

工作中经常用到的linq根据传入数据集合查询对应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点对应ID数据集合,再根据ID数据集合查询全部子级数据. //获取缓存数据 object obj = Caching.GetCache(CacheKey + UModel.RoleId); if (obj != null)//判读缓存数据是否null { SysFunList = (DataSet)obj; } else { string strSql = "select

.net中关于linq执行sql语句分页查询的功能

问题描述 publicList<V_NoEpay_User>GetOrderDatas(intstart,intcount,outinttotCount,DateTime?starTime,DateTime?endTime),应该怎么样来下逻辑呢,求大神们帮忙,如果能帮忙写出来就最好 解决方案 解决方案二:去Linq专区吧......现在Linq专区都成翻译了..解决方案三:returnquery.OrderBy(x=>排序条件).Skip((页码-1)*每页数).Take(每页数)解决

走进Linq-Linq to SQL源代码赏析,通过Linq to SQL看Linq

LINQ,语言集成查询,就是把一些查询操作集成到语言中(貌似是废话),比 如查询关系数据库,而且提供一种一致的操作方式,不管最终的数据存储在哪里 ?内存中,远程数据库还是一Xml格式文件存储,不仅仅如此,你还可以用你丰 富的想象力扩充自己的查询.Linq to SQL无疑把Linq的能量发挥的淋漓尽致, 我们就以Linq to SQL的体系结构来学习一下Linq的整体框架. 在上两章 里面我们通过源代码探讨了关于DataContext的初始化和Table<TEntity> 对象的获取,以及Pr

编写高质量代码改善C#程序的157个建议[IEnumerable&lt;T&gt;和IQueryable&lt;T&gt;、LINQ避免迭代、LINQ替代迭代]

原文:编写高质量代码改善C#程序的157个建议[IEnumerable<T>和IQueryable<T>.LINQ避免迭代.LINQ替代迭代] 前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议29.区别LINQ查询中的IEnumerable<T>和IQueryable<T> 建议30.使用LINQ取代集合中的比较器和迭代器 建议31.在LINQ查询中避免不必要的迭代

Linq入门——什么是linq &amp;amp; 扩展方法

 一,什么是Linq                      linq(language integrated Query):语言集成查询:      linq包含如下:                 对对象的查询,对数据库的查询,对XML的查询.       那么,没有linq前我们是怎样查询的?             先看一个例子:             现在我们要查询大于50的数,:          在没有linq之前,我们的代码时这样的:                   

[转载]C/C++ 开发人员:充实您的 XML 工具箱(初涉XML的值得一读)

本文针对哪些不熟悉 XML 开发的 C 和 C++ 程序员,概述了为 XML 开发作准备而装配的工具.工具表概述了常规 XML 工具,如 IDE 和模式设计器.解析器.XSLT 工具.SOAP 和 XML-RPC 库,以及其它可以在 C 和/或 C++ 中使用或者实际上以 C 和/或 C++ 编写的库.本文包括了关于在 Windows.Unix 和 Linux 上安装开放源码库的建议,还有关键 XML 术语的简要词汇表. 似乎满眼望去,一些新的以源码形式发布的与 XML 相关的工具都是用 Jav