首先准备一个简单但是常见的XML 
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8" ?> 
<userSet> 
<userInfo> 
<profile> 
<phoneNumber>13818181818</phoneNumber> 
<country>China</country> 
</profile> 
</userInfo> 
<userInfo> 
<profile> 
<phoneNumber>13919191919</phoneNumber> 
<country>Korea</country> 
</profile> 
</userInfo> 
</userSet> 
测试一:
复制代码 代码如下:
private void Test1() 
{ 
XDocument xdoc = XDocument.Load(@"UserSet.xml"); 
var users = from u in xdoc.Descendants("userInfo") 
where u.Attribute("id").Value == "1" 
select u; 
foreach (var u in users) 
{ 
string name = u.Attribute("name").Value; 
Console.WriteLine(name); 
} 
} 
输出结果为: 
Guozhijian 
测试二
复制代码 代码如下:
private void Test2() 
{ 
XDocument xdoc = XDocument.Load(@"UserSet.xml"); 
var users = from u in xdoc.Root.Elements("userInfo") 
where u.Element("profile").Element("phoneNumber").Value == "13919191919" 
select u; 
foreach (var u in users) 
{ 
string name = u.Attribute("name").Value; 
Console.WriteLine(name); 
} 
} 
输出结果为: 
Zhenglanzhen 
注意: 
Descendants 可遍历某节点或文档下的所有子节点 
Elements 则是遍历当前节点或文档下一级的子节点 (这点区别非常重要) 
非常简单的两个 class 已基本上满足普通的XML遍历。