您的位置:首页 > 其它

LinQ To XML——用LinQ查询XML

2011-03-28 11:08 453 查看
将一个已知的XML放到XDocument对象当中使用LINQ查询非常的容易,下面是一个例子。查找XML文档中的所有PERSONA元素显示结果个数,并遍历输出其值
publicvoidMyDescendants()
{
XDocumentxdoc=XDocument.Load(Server.MapPath("hamlet.xml"));
//查找元素名为PERSONA的元素
varquery=frompeopleinxdoc.Descendants("PERSONA")
selectpeople.Value;
//people是符合条件元素结果集而people.Value;就是这个结果集的所有元素的值的序列
Response.Write(query.Count()+"个玩家被找到。");

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

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

}

}

通过URL找到一个网络上的RSSXML文档,并查询。
publicvoidMyRSS()
{
//通过下面的代码你可以看到一个简单的网页RSS阅读器
XDocumentxdoc=XDocument.Load(@"http://www.cnblogs.com/TerryFeng/rss");
//找到channel元素集合
varquery=fromrssFeedinxdoc.Descendants("channel")
selectnew
{
Title=rssFeed.Element("title").Value,//获取其下的title元素的值组成新结果集匿名对象的属性
Description=rssFeed.Element("description").Value,//获取其下的description元素的值组成新结果集匿名对象的属性
Link=rssFeed.Element("link").Value,//获取其下的link元素的值组成新结果集匿名对象的属性
};

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

//第二个查询,查询文档中的item元素,每个项目就是一个博客随笔
varqueryPosts=frommyPostsinxdoc.Descendants("item")
selectnew
{
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(variteminqueryPosts)
{
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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: