LINQ to XMLが便利すぎてメモ
下記のsample.xmlに対して
<?xml version="1.0" encoding="UTF-8" ?> <LIST> <文字 ID="00001"> <UCS>4E00</UCS> <CID>1200</CID> </文字> <文字 ID="00002"> <UCS>4E05</UCS> <CID>14297</CID> </文字> </LIST>
<文字>のタグの一覧を取得する
XDocument xdoc = XDocument.Load("sample.xml"); //戻り値はIEnumerable<XElement> var lst = from moji in xdoc.Descendants("文字") select moji; foreach (var/*XElement*/ elem in lst) { Console.WriteLine("TAG NAME={0}", elem.Name); //文字 var ucs = elem.Element("UCS"); //子供のUCSを取得 Console.WriteLine("UCS={0}", ucs.Value/*タグに挟まれた文字列*/); }
IDの一覧を取得する
XDocument xdoc = XDocument.Load("sample.xml"); //戻り値はIEnumerable<string> var lst = from moji in xdoc.Descendants("文字") select moji.Attribute("ID").Value; foreach (var/*string*/ id in idlst) { Console.WriteLine("ID={0}", id); }
こんなに簡単だとプログラムの書き方を忘れる。