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