XDocument schreibt duplizierte XML

Ich habe eine Methode, die XML in ein XDocument lädt und dessen Elemente dann speichert. Aber wenn ich es neu lade. Ich habe diesen Fehler bekommen:

Unerwartete XML-Deklaration. Die XML-Deklaration muss der erste Knoten im Dokument sein und darf keine Leerzeichen enthalten.

Ich überprüfe das XML und stelle fest, dass das XDocument die Änderungen nicht gespeichert hat, sondern ein Duplikat erstellt und gespeichert hat.

Es speichert die alte und die neue wie folgt:

<?xml version="1.0" encoding="UTF-8"?>
<Ungdungs>
  <Ungdung>
    <Name>HERE City Lens</Name>
    <Id>b0a0ac22-cf9e-45ba-8120-815450e2fd71</Id>
    <Path>/Icon/herecitylens.png</Path>
    <Version>Unknown</Version>
    <Category>HERE</Category>
    <Date>Uknown</Date>
  </Ungdung>
<?xml version="1.0" encoding="UTF-8"?>
<Ungdungs>
  <Ungdung>
    <Name>HERE City Lens</Name>
    <Id>b0a0ac22-cf9e-45ba-8120-815450e2fd71</Id>
    <Path>/Icon/herecitylens.png</Path>
    <Version>1.0.0.0</Version>
    <Category>HERE</Category>
    <Date>Uknown</Date>
  </Ungdung>

Hier der Code, den ich zum Ändern und Speichern von XML verwendet habe:

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

Wie kann ich dieses Problem lösen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage