测试一: 代码如下: 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遍历。