2007年12月21日

Linq to XML その2

   このエントリーをはてなブックマークに追加 Clip to Evernote
Linq to XML その1

前回のXMLを読み込み、

坂本竜馬:35歳
井伊直弼:44歳
...

のように表示するにはどうしたらよいでしょうか?
前回の応用ですね。

XDocument xdoc = XDocument.Load("people.xml");
foreach (var xperson in xdoc.Root.Elements()) {
XElement xname = xperson.Element("Name");
XElement xage = xperson.Element("Age");
Console.WriteLine(xname.Value+":"+xage.Value+"歳");
}


クエリ式だと、

XDocument xdoc = XDocument.Load("people.xml");
var query = from xperson in xdoc.Root.Elements()
select new {
Name = xperson.Element("Name").Value,
Age = (int)xperson.Element("Age")
};
foreach (var p in query)
Console.WriteLine(p.Name + ":" + p.Age +"歳");


となります。
クエリ式を使ったコードの例では、出力時に、Name, Ageプロパティが使えているのことに注目ですね。
さらに、Ageプロパティの型が、intになっていることにも注目です。
XElement型は、intや、decimalなどの型にキャストできるようになっています。


この記事へのコメント
LINQ to XMLその3
http://blog.livedoor.jp/gushwell/archives/51313050.html
Posted by LINQ to XMLその3 at 2008年04月19日 20:12
 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/51306261