測試一: 代碼如下: 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遍歷。