Linq To xml 查询时需要注意的一点。

今天由于项目原因,需要用C#解析Xml文件,由于使用的是3.5的framework,所以想到拿Linq to xml试试水。于是按着MSDN上的作法自己试了一下

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 XElement root = XElement.Load("ProjectSoruce.xml");

           
            IEnumerable
<XElement> Resources =
                from el 
in root.Descendants("Task")
                  select el;
            
foreach (XElement el in Resources)
                Console.WriteLine(el);

结果根本取不到Task元素。一头雾水,而MSDN上翻来覆去就那么几个例子。反复调试了一个小时,后来终于发现,原来我的XML有命名空间,而Linq To XML查询时,需要把这个命名空间也带上。代码应该这样写

@"http://schemas.microsoft.com/project";  是我自己的XML上带的命名空间

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 XNamespace ns = @"http://schemas.microsoft.com/project";

            XElement root 
= XElement.Load("ProjectSoruce.xml");

           
            IEnumerable
<XElement> Resources =
                from el 
in root.Element(ns + "Tasks").Elements(ns + "Task")
                  select el;
            
foreach (XElement el in Resources)
                Console.WriteLine(el);
           
            
//Pause the application
            Console.ReadLine();

转载于:https://www.cnblogs.com/listhome/archive/2009/11/03/1595552.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值