Извинения за фальстарт (удалено).Вот фрагмент, который вошел бы во второй оператор использования в вашем примере.Обратите внимание, как мы выбираем первый элемент Row (firstRow), а затем AddBeforeSelf.Предполагается, что вы хотите, чтобы новый элемент находился в верхней части списка.
// See update, below, for corrected version
XDocument doc1 = XDocument.Load( myStream );
var root = doc1.Element( "Root" );
var rows = root.Descendants( "Row" );
var firstRow = rows.First();
firstRow.AddBeforeSelf(
new XElement( "Row",
new XElement( "Nome", "Homepage2" ),
new XElement( "Tipo", "News2" ),
new XElement( "URL", "/web/xml2" ),
new XElement( "Err", "Errore2" ) ) );
doc1.Save( myStream );
Обновлен: поскольку ОП указывает на комментарии, он хотел, чтобы новый элемент был добавлен, а не добавлен.Кроме того, он получает исключение при последующих вызовах.Это исключение связано с добавлением XDocument.Save (Stream stream) к потоку, поэтому в файле получается два XML-документа (не правильно сформированный XML).Это следующее устраняет обе эти проблемы.
XDocument doc1;
using (IsolatedStorageFileStream myStream = new IsolatedStorageFileStream( "categorie_settings.xml", FileMode.Open, myStore ))
{
doc1 = XDocument.Load( myStream );
}
var root = doc1.Element( "Root" );
var rows = root.Descendants( "Row" );
var lastRow = rows.Last();
lastRow.AddAfterSelf(
new XElement( "Row",
new XElement( "Nome", "Homepage2" ),
new XElement( "Tipo", "News2" ),
new XElement( "URL", "/web/xml2" ),
new XElement( "Err", "Errore2" ) ) );
using (IsolatedStorageFileStream myStream = new IsolatedStorageFileStream( "categorie_settings.xml", FileMode.Create, myStore ))
{
doc1.Save( myStream );
}
Там сохранение выполняется в потоке, который создает файл, тем самым перезаписывая предыдущий файл.В качестве альтернативы вы можете использовать XDocument.Save (String filename), который заменяет содержимое файла.