如何使用Linq To XML获取多个元素并分别存储?

How to use Linq To XML to get multiple elements and store them differently?

<MainData id="1" >
<Info>
<Date>2015-06-08 15:00:00</Date>
</Info>
<Data DataRef="uu91"/>
<Data DataRef="uu92">
</Data>
</MainData>

我有一个 xml 文件,我想获取两个数据元素并将它们存储到两个不同的变量中,所以当我这样做时会出现相同的值。当我收到这两个值时,我想获得 ID,日期...

var data = from item in retreiveOptaHomeFixturesXml.Descendants("MainData")
                   select new
                   {
                       ID = item.Attribute("id").Value,
                       Date = item.Element("Info").Element("Date").Value,
                       DataRef1 = item.Element("Data").Attribute("DataRef").Value,
                       Dataref2 = item.Element("Data").Attribute("DataRef").Value,
                   };

理想情况下,您应该将 DataRef 提取到列表中,因为在每个 MainData 中,您将拥有多个具有 DataRef 属性的数据。你可以这样做:-

 var data = from item in x1.Descendants("MainData")
            let dataNodes = item.Elements("Data")
            select new
                  {
                     ID = item.Attribute("id").Value,
                     Date = item.Element("Info").Element("Date").Value,
                     DataRef1Ref2 = dataNodes.Select(x => (string)x.Attribute("DataRef"))
                                             .ToList()
                  };