当前位置:  开发笔记 > 编程语言 > 正文

LINQ to XML新手问题:按节点名称返回节点

如何解决《LINQtoXML新手问题:按节点名称返回节点》经验,为你挑选了1个好方法。

问候!

如果我有这样的XML:


    
    .
    .
    .
    

    
        
            
                Choice One 
                Choice Two
            
            
                Choice Three 
                Choice Four
            
        
    

    
    .
    .
    .
    

我想获得"BetaSection"中的所有Choice项目,无论它们属于哪个"Set".我尝试过以下方法:

var choiceList = from choices in myXDoc.Root.Element("BetaSection").Elements("Choices")
                 where (choices.Name == "Choice")
                 select new
                 {
                     Name = choices.Attribute("id").Value,
                     Data = choice.Value
                 };

但无济于事.我该怎么做?

谢谢.



1> Jon Skeet..:

你根本不需要where子句 - 你只需要将Elements调用更改为Descendants:

var choiceList = myXDoc.Root
                       .Element("BetaSection")
                       .Descendants("Choice")
                       .Select(element => new
                               {
                                  Name = element.Attribute("id").Value,
                                  Data = element.Value;
                               });

(我已经将它从查询表达式转换为简单的点表示法,因为我认为查询表达式并没有真正帮助你.)

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有