サンプルをぱくったサンプル
元ネタはここ。
http://opcdiary.net/?p=3438
マルぱくり。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; namespace LinqToXML { class Program { static void Main(string[] args) { var employees = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); employees.Add(new XComment("社員名簿")); // XMLコメントの追加 employees.Add(new XElement("Employees")); // Root Elementの作成 // 1ノード目 XElement elem = new XElement("Employee"); elem.Add(new XAttribute("ID", 99999)); elem.Add(new XElement("Name", "Mike")); elem.Add(new XElement("Address", "Niigata")); employees.Root.Add(elem); // 2ノード目 elem = new XElement("Employee"); elem.Add(new XAttribute("ID", 88888)); elem.Add(new XElement("Name", "John")); elem.Add(new XElement("Address", "Fukuoka")); employees.Root.Add(elem); // XDocumentをxmlとして保存 employees.Save(@"D:\text\xml\employees.xml"); // xmlをXDocumentに読み込み XDocument readEmployees = XDocument.Load(@"D:\text\xml\employees.xml"); //Console.WriteLine(readEmployees.Declaration); //Console.WriteLine(readEmployees); // 木構造を辿ってアクセス var query = from x in readEmployees.Element("Employees").Elements("Employee") select x; foreach(var i in query) { String name = i.Element("Name").Value; Console.WriteLine(name); } // エレメント名指定で直接アクセス query = from x in readEmployees.Descendants("Employee") select x; foreach (var i in query) { String name = i.Element("Name").Value; Console.WriteLine(name); } Console.ReadLine(); } } }