Linq To Xml一句入门
上次写了篇Linq To Xml 增删改查
自以为对Linq To Xml差不多入门了,结果实际工作中遇到一个简单的子级查询就绊住了。
园子里高人比较多,帮我写句很经典的Linq语句,让体验到Linq的强大与高深。
先看这句经典代码吧。
自以为对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选择(一对多);延迟
*/
+ "<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/
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。