XDocument write Duplicated xml
У меня есть метод, который загружает XML в XDocument и изменяет его элементы, а затем сохраняет. Но когда я перезагружаю это. Я получил эту ошибку:
Неожиданное объявление XML. Декларация XML должна быть первым узлом в документе, и символы пробела не должны появляться перед ним.
Я проверяю XML и вижу, что XDocument неСохраните изменения, но создайте дубликат и сохраните.
Это сохраняет старый и новый как этот пример xml:
HERE City Lens
b0a0ac22-cf9e-45ba-8120-815450e2fd71
/Icon/herecitylens.png
Unknown
HERE
Uknown
HERE City Lens
b0a0ac22-cf9e-45ba-8120-815450e2fd71
/Icon/herecitylens.png
1.0.0.0
HERE
Uknown
Вот код, который я использовал для изменения и сохранения XML:
using (Stream stream = storage.OpenFile("APPSDATA.xml", FileMode.Open, FileAccess.ReadWrite))
{
//var xdoc = XDocument.Load("APPSDATA.xml");
var xdoc = XDocument.Load(stream, LoadOptions.None);
var listapp = from c in xdoc.Descendants("Ungdung") select c;
foreach (XElement app in listapp)
{
var xElement = app.Element("Name");
if (xElement != null)
progressIndicator.Text = "Checking " + xElement.Value + "...";
var element = app.Element("Id");
if (element != null)
{
var appId = element.Value;
var appVersion = await GetAppsVersion(appId);
app.Element("Version").Value = appVersion.ToString();
}
}
xdoc.Save(stream);
}
Как я могу решить эту проблему ?