Architecture XML / requete LINQ
Bonjour,
Je debute en LINQ et pas facile de m'en sortir tout seul.
Voici mon probleme:
Je souhaite stocker les dividendes de compagnies dans un fichier XML et via une requête LINQ accéder au dernier dividende de chaque entreprise (c'est à dire au couple (RIC, Ex_Date, AMOUNT, CCY)
Voici comment se presente mon fichier XML:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <root>
<Equity>
<Ric>MSFT</Ric>
<Dividend>
<EX_DATE>2011-02-28</EX_DATE>
<AMOUNT>0.25</AMOUNT>
<CCY>EUR</CCY>
</Dividend>
<Dividend>
<EX_DATE>2011-02-18</EX_DATE>
<AMOUNT>0.15</AMOUNT>
<CCY>EUR</CCY>
</Dividend>
<Dividend>
<EX_DATE>2011-02-08</EX_DATE>
<AMOUNT>0.01</AMOUNT>
<CCY>EUR</CCY>
</Dividend>
<Dividend>
<EX_DATE>2011-01-28</EX_DATE>
<AMOUNT>0.05</AMOUNT>
<CCY>EUR</CCY>
</Dividend>
</Equity>
<Equity>
<Ric>FTE</Ric>
<Dividend>
<EX_DATE>2011-01-18</EX_DATE>
<AMOUNT>0.04</AMOUNT>
<CCY>EUR</CCY>
</Dividend>
</Equity>
</root> |
et voici mon code C#:
Code:
1 2 3 4 5 6 7 8 9 10 11
| XDocument xdoc = XDocument.Load(@path + "\\_dividend.xml");
var singleDividend = (from p in xdoc.Root.Descendants("Equity")
group p by p.Elements("Equity") into g
let lastExDate = g.Max(u => u.Element("Dividend").Element("EX_DATE").Value )
select new { Ric = g.Key , Ex_Date = g.Where(u => u.Element("Dividend").Element("EX_DATE").Value == lastExDate) });
foreach (var xe in singleDividend)
{
Console.WriteLine(xe.Ric );
Console.WriteLine(xe.Ex_Date);
} |
Ce qui me sort à la console n'est pas du tout le Ric ni la date escompté mais:
Citation:
System.Xml.Linq.XContainer+<GetElements>d__11
System.Linq.Enumerable+WhereEnumerableIterator`1[System.Xml.LinqXElement]
Merci de m'aider