LINQ to XML
今まで何回も目にしてきたけど、最近XMLを操作する必要がなくてLINQ to XMLを実際に触ったことがなかった(LINQ to Objectばっかり)。でも個人用ツールを作る際にXMLさんの出番が来たので、使ってみるべくようやく触りました。
.NET Framework 1.1時代にもXMLは良く使ってたけど、当時から比べたらすごい楽になったよなぁ。。。
簡単なテストコード
public void Test1() { XElement xml = new XElement( "root", new XElement( "sub", new XElement( "data", 1 ), new XElement( "data", 2 ), new XElement( "data", 3 ), new XElement( "etc", new XElement( "foo", 10 ) ) ), new XElement( "sub", new XElement( "data", 4 ), new XElement( "data", 5 ), new XElement( "data", 6 ), new XElement( "etc", new XElement( "foo", 20 ) ) ) ); xml.Save( "test.xml" ); } public void Test2() { //XElement foo = XElement.Load( "test.xml" ); XDocument xml = XDocument.Load( "test.xml" ); Func<XElement, bool> evenp = (x => (int)x % 2 == 0); var result = from x in xml.Elements().SelectMany( e => e.Elements( "sub" ).Elements( "data" ) ) where evenp( x ) select new { Name = "でーた", x.Value }; result.ToList().ForEach( Console.WriteLine ); }