您的位置:首页 > 其它

Linq To Xml一句入门

2010-07-13 09:09 281 查看
上次写了篇Linq To Xml 增删改查
自以为对Linq To Xml差不多入门了,结果实际工作中遇到一个简单的子级查询就绊住了。
园子里高人比较多,帮我写句很经典的Linq语句,让体验到Linq的强大与高深。
先看这句经典代码吧。

大气象

string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?><root>"
+ "<room><id>1</id><people><name>张三1</name></people>"
+ "<people><name>张三2</name></people></room><room><id>2</id><people><name>李四1</name></people>"
+ "<people><name>李四2</name></people></room></root>";
var obj = XDocument.Parse(xml).Descendants("room")
.Where(w => w.Elements("id").Any(a => (int)a == 1))
.SelectMany(s => s.Elements("people"));
foreach (var info in obj)
{
Response.Write(info + "<br />");
}
/*
* 1.Parse() 从字符串创建XDocument
* 2.Descendants("xname"); 按XName筛选子元素集合
* 3.Lambda表达式“=>”
* 其实和2.0中的匿名方法差不多,都是用于产生内联方法,只不过Lambda表达式的语法更为简洁。
* 语法如下:(参数列表) => 表达式或者语句块
* 4.Any() 用于判断集合中是否有元素满足某一条件;
* 5.SelectMany() Select选择(一对多);延迟
*/
Linq语法真的挺好玩,但是有不少人告诉我学Linq用处不大。没办法,用到什么就学什么吧。
这是我的提问:Linq To Xml查询指定父级下面的所有子级。
http://space.cnblogs.com/question/15683/

感谢熊哥:http://www.cnblogs.com/livexy/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: