如何使用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()
};
<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()
};