XDocument – zapisywanie do pliku xml

We wpisie o LinqToXml pisałem jak można czytać z pliku XML. Co jednak z zapisywaniem? Otóż jest to równie łatwe. Znowu zaprzęgniemy do pracy Linq. Najpierw oczywiście otwieramy plik a następnie pozostaje stworzyć XDocument z zawartością. Zawartość możemy dodawać ręcznie albo (jak na przykładzie poniżej) wybrać elementy za pomoca Linq i zwrócić je w takiej postacji jakiej chcemy mieć je zapisane.

Najważniejsze to obiekty to XElement i XAttribute

[csharp]

SaveFileDialog saveFile = new SaveFileDialog();
if (saveFile.ShowDialog() == true)
{
var outputFile = saveFile.OpenFile();
XDocument outputXml = new XDocument(
new XElement(‚Controls’, from arControl in settingsCollection
select new XElement(‚Control’,
new XAttribute(‚id’, control.OriginalKey),
new XAttribute(‚x’, control.X),
new XAttribute(‚y’, control.Y))
)
);
outputXml.Save(outputFile);
outputFile.Flush();
outputFile.Close();
}

[/csharp]

Scroll to top