asp.net Linq To Xml上手Descendants、Elements遍历节点 |
首先准备一个简单但是常见的XML 复制代码 代码如下: <?xml version="1.0" encoding="utf-8" ?> <userSet> <userInfo id="1" name="Guozhijian"> <profile> <phoneNumber>13818181818</phoneNumber> <country>China</country> </profile> </userInfo> <userInfo id="2" name="Zhenglanzhen"> <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遍历 。 |