Linq To Xml上手(1) Descendants、Elements遍历节点

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遍历。

转载于:https://www.cnblogs.com/guozhijian/archive/2007/12/05/983279.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值