На мой взгляд, простейшим способом было бы загрузить весь документ с использованием LINQ to XML, изменить его, а затем снова сохранить. Это, вероятно, будет проще, чем использовать XmlReader
, что может показаться мне немного странным.
Однако это включает загрузку всего этого в память - что может быть проблемой, если документы огромны. Это может быть проблемой?
РЕДАКТИРОВАТЬ: Вот короткий пример в LINQ to XML (не проверено):
XDocument doc = XDocument.Load("test.xml");
XNamespace ss = "http://url/for/ss";
Sheet sheet1 = doc.Descendants("Sheet")
.Where(x => (string) x.Attribute(ss + "name") == "Sheet1");
XElement lastRow = sheet1.Elements("Row").LastOrDefault();
// Note: if there aren't any rows, lastRow will be null here. Handle accordingly
lastRow.AddAfterSelf(new XElement("Foo", "Extra value"));
Альтернатива последней части, если вы просто хотите новый контент после всего старого контента листа:
sheet1.Add(new XElement("Foo", "Extra value"));