Лично я бы предложил использовать LINQ to XML.Это намного API проще в использовании, чем XmlDocument
.
Но да, если вы хотите изменить существующий документ, тогда обычно с использованием представления в памятипроще, чем использование потокового API. возможно , конечно, сделать последнее, но это нелегко.
Вот пример для создания того же XML, который вы уже получили (кроме объявления: любая причина, по которой вы 'd хотите использовать Latin-1 вместо чего-то вроде UTF-8, который может представлять весь Unicode, кстати?)
var doc = new XDocument(
new XElement("MyParts",
new XElement("parts",
new XElement("item", "Part1"),
new XElement("color", "Red"),
new XElement("size", "SM")),
new XElement("parts",
new XElement("item", "Part2"),
new XElement("color", "Blue"),
new XElement("size", "XXL"))));
Тогда, если вы хотите добавить еще одну часть:
doc.Root.Add(
new XElement("parts",
new XElement("item", "Part3"),
new XElement("color", "Green"),
new XElement("size", "L")));
По общему признанию, я ожидал, что вы захотите инкапсулировать бит "создать элемент частей" в метод, чтобы избежать его повторения все время ... но, надеюсь, вы получите картину.