Многие люди говорили о XML, это хорошая идея. Однако, если Linq доступен для вас, вы действительно можете использовать Linq to XML вместо анализа SAX / DOM.
Linq to XML облегчает анализ, создание и редактирование XML-файла по сравнению с SAX и DOM-анализатором. Использование синтаксического анализа SAX / DOM обычно требует большого количества циклов, чтобы добраться до нужного элемента или перемещаться по узлам.
Пример взят из MSDN:
Использование синтаксического анализа DOM:
XmlDocument doc = new XmlDocument();
XmlElement name = doc.CreateElement("Name");
name.InnerText = "Patrick Hines";
XmlElement phone1 = doc.CreateElement("Phone");
phone1.SetAttribute("Type", "Home");
phone1.InnerText = "206-555-0144";
XmlElement phone2 = doc.CreateElement("Phone");
phone2.SetAttribute("Type", "Work");
phone2.InnerText = "425-555-0145";
XmlElement street1 = doc.CreateElement("Street1");
street1.InnerText = "123 Main St";
XmlElement city = doc.CreateElement("City");
city.InnerText = "Mercer Island";
XmlElement state = doc.CreateElement("State");
state.InnerText = "WA";
XmlElement postal = doc.CreateElement("Postal");
postal.InnerText = "68042";
XmlElement address = doc.CreateElement("Address");
address.AppendChild(street1);
address.AppendChild(city);
address.AppendChild(state);
address.AppendChild(postal);
XmlElement contact = doc.CreateElement("Contact");
contact.AppendChild(name);
contact.AppendChild(phone1);
contact.AppendChild(phone2);
contact.AppendChild(address);
XmlElement contacts = doc.CreateElement("Contacts");
contacts.AppendChild(contact);
doc.AppendChild(contacts);
Использование Linq to XML:
XElement contacts =
new XElement("Contacts",
new XElement("Contact",
new XElement("Name", "Patrick Hines"),
new XElement("Phone", "206-555-0144",
new XAttribute("Type", "Home")),
new XElement("phone", "425-555-0145",
new XAttribute("Type", "Work")),
new XElement("Address",
new XElement("Street1", "123 Main St"),
new XElement("City", "Mercer Island"),
new XElement("State", "WA"),
new XElement("Postal", "68042")
)
)
);
Проще сделать и намного понятнее.
Edit:
Сохраните дерево XML в contacts.xml:
// using the code above
contact.Save("contacts.xml");
Загрузить файл contacts.xml:
//using the code above
XDocument contactDoc = XDocument.Load("contacts.xml");
Для обновления элемента дерева в doc есть несколько функций, которые могут делать это в зависимости от того, что вы хотите сделать