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で部分的に読み書きします。