LINQ to XML, cz. 1 - Wprowadzenie
Często zdarza się, że dokument xml jest przekazywany w postaci łańcucha znakowego (stringa). W takim przypadku dokument można załadować za pomocą funkcji Parse:
string xmlStr =
@"<?xml version=""1.0""?>
<wycieczka>
<segment>
<wylot kod-lotniska=""SEA"" data=""2008-10-09T15:25Z"">
Seattle-Tacoma International</wylot>
<przylot kod-lotniska=""LHR"" data=""2008-10-10T02:20Z"">
London Heathrow</przylot>
</segment>
<segment>
<wylot kod-lotniska=""LHR"" data=""2008-10-10T05:35Z"">
London Heathrow</wylot>
<przylot kod-lotniska=""WRO"" data=""2008-10-10T10:05Z"">
Wroclaw Strachowice</przylot>
</segment>
</wycieczka>";
XDocument xDoc = XDocument.Parse(xmlStr);
Tak jak metoda Load także i ta funkcja pozwala na przekazanie obiektu typu LoadOptions z dodatkowymi ustawieniami wykorzystywanymi podczas parsowania wejściowego dokumentu Xml.
Dokument Xml można także stworzyć bezpośrednio w programie. Dla przykładowego dokumentu kod, który to robi wygląda następująco:
XDocument xDoc =
new XDocument(new XDeclaration("1.0", "", ""),
new XElement("wycieczka",
new XElement("segment",
new XElement("wylot",
new XAttribute("kod-lotniska", "SEA"),
new XAttribute("data", "2008-10-09T15:25Z"),
new XText("Seattle-Tacoma International")),
new XElement("przylot",
new XAttribute("kod-lotniska", "LHR"),
new XAttribute("data", "2008-10-10T02:20Z"),
new XText("London Heathrow"))),
new XElement("segment",
new XElement("wylot",
new XAttribute("kod-lotniska", "LHR"),
new XAttribute("data", "2008-10-10T05:35Z"),
new XText("London Heathrow")),
new XElement("przylot",
new XAttribute("kod-lotniska", "WRO"),
new XAttribute("data", "2008-10-10T010:05Z"),
new XText("Wroclaw Strachowice")))));
Dużą zaletą Linq to Xml jest to, że w przypadku tworzenia dokumentu Xml w ten sposób kod jest o wiele bardziej przejrzysty, czytelny i o wiele krótszy niż to ma miejsce przy tworzeniu dokumentu za pomocą interfejsu Xml Dom.
