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);
                }

Как я могу решить эту проблему ?

Ответы на вопрос(1)

Ваш ответ на вопрос