XDocument document = new XDocument(); document.Declaration = new XDeclaration("1.0", "utf-8", ""); XElement root = new XElement("root"); XElement section = new XElement("section"); for (int i = 1; i <= 2; i++) { XElement data = new XElement("data"); data.Add(new XAttribute("name", i)); data.Value = "val" + i; section.Add(data); } root.Add(section); document.Add(root); document.Save(fileName);
次のようなXML文書が作成されます。
<?xml version="1.0" encoding="utf-8"?> <root> <section> <data name="1">val1</data> <data name="2">val2</data> </section> </root>
XDocument document = XDocument.Load(fileName); XElement root = document.Element("root"); XElement section = root.Element("section"); IEnumerable<XElement> dataElements = section.Elements("data"); foreach (XElement data in dataElements) { string name = data.Attribute("name").Value; // 1, 2 string value = data.Value; // val1, val2 }
次のように検索できます。
IEnumerable<XElement> children = section.Elements(); XElement child = children.First(elem => elem.Attribute("name").Value == "1"); string val = child.Value; // val1
データのアクセスに時間がかかる場合には、XmlWriterやXmlReaderで部分的に読み書きします。