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选择(一对多);延迟
*/