Linq查询获取子记录

时间:2012-07-12 11:37:09

标签: linq c#-4.0

我有

string inputXml = @"<?xml version='1.0' encoding='UTF-8'?>
                <Parent>
                  <Child>
                      <Child1 value='10' />  
                      <Child2 value= '20' />                           
                   </Child>
                   <Child>
                      <Child1 value='30' />  
                      <Child2 value='40' /> 
                      <Child3 value='50' />                          
                   </Child>                
                </Parent>";

需要一个linq查询来获取内部子项的所有值。

输出

Child1 : 10
Child2: 20
Child1: 30
Child2 : 40
Child3: 50

我迷失了

XDocument source = null;
source = XDocument.Parse(inputXml);


var res = (from data in source.Descendants("Child")
          select data);

需要帮助

1 个答案:

答案 0 :(得分:3)

var res = xmlSkuDescDoc.Descendants("Child")
                       .SelectMany(c => c.Elements())
                       .Select(c => new { Name = c.Name, Value = (string)c.Attribute("value")});

这应该返回具有两个属性的匿名对象列表:NameValue