user2948474
user2948474

Reputation: 45

C# XDocument Save copy file and appends edited to end

When I'm trying to edit XML Element and save it, it generates copy (with edited element) and appends it to end of file.

var localStore = IsolatedStorageFile.GetUserStoreForApplication();

IsolatedStorageFileStream stream = new IsolatedStorageFileStream("DataFolder\\PlayerData.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite, localStore);

var doc = XDocument.Load(stream);

doc.Root.Element("characters").Element("character").SetElementValue("expierence", 10);

doc.Save(stream, SaveOptions.None);
stream.Close();

Example output file:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <characters>
        <character>
            <expierence>0</expierence>
        </character>
    </characters>
</root><?xml version="1.0" encoding="utf-8"?>
<root>
    <characters>
        <character>
            <expierence>10</expierence>
        </character>
    </characters>
</root>

Upvotes: 1

Views: 597

Answers (1)

SLaks
SLaks

Reputation: 887657

That's exactly what you told it to do by passing FileMode.OpenOrCreate.
If you want to truncate any existing file, pass Create.

For more information, see the documentation.

Upvotes: 1

Related Questions