当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net Linq To Xml上手Descendants、Elements遍历节点

ASP.NET
部署ASP.NET的三大技术(2)
部署ASP.NET的三大技术(3)
部署ASP.NET的三大技术(4)
部署ASP.NET的三大技术(5)
部署ASP.NET的三大技术(6)
ASP.NET可交互式位图窗体设计(1)
ASP.NET可交互式位图窗体设计(2)
ASP.NET可交互式位图窗体设计(3)
ASP.NET可交互式位图窗体设计(4)
ASP.NET可交互式位图窗体设计(5)
ASP.NET可交互式位图窗体设计(6)
ASP.NET可交互式位图窗体设计(7)
ASP.NET可交互式位图窗体设计(8)
ASP.NET可交互式位图窗体设计(9)
ADO.NET2.0的十大新特性
用Asp.net实现基于XML的留言簿之一
用Asp.net实现基于XML的留言簿之二
用Asp.net实现基于XML的留言簿之三
用Asp.net实现基于XML的留言簿之四
在ASP.NET中使用.NET组件

ASP.NET 中的 asp.net Linq To Xml上手Descendants、Elements遍历节点


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 236 ::
收藏到网摘: n/a

C#3.0 Vs2008 RTM 本文介绍如何使用 Descendants、Elements快速遍历XML节点 首先准备一个简单但是常见的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遍历。