Angenommen, ich habe eine Liste von Kunden und möchte Kunden mit einem bestimmten Kriterium als XML-Fragment exportieren, kann ich dies leicht mit Linq to XML erledigen.
Gegeben ist unsere Klasse “Kunde”, die wie folgt aussieht:
public class Kunde {
public int Id { get; set; }
public string Vorname { get; set; }
public string Nachname { get; set; }
public string Status { get; set; }
}
Wir haben drei Kunden, 2 davon mit Platin-Status, die als XML exportiert werden sollen:
Kunde steveBallmer = new Kunde() {Id = 1, Vorname = "Steve", Nachname = "Ballmer", Status = "Gold"};
Kunde billGates = new Kunde() {Id = 2, Vorname = "Bill", Nachname = "Gates", Status = "Platin"};
Kunde scottGuthrie = new Kunde() {Id = 3, Vorname = "Scott", Nachname = "Guthrie", Status = "Platin"};
List kunden = new List() {steveBallmer, billGates, scottGuthrie};
Der Code zur Generierung des XML sieht wie folgt aus:
XElement platinKunden = new XElement("PlatinKunden",
from kunde in kunden
where kunde.Status == "Platin"
select new XElement("Kunde",
new XAttribute("Id", kunde.Id),
new XElement("Vorname", kunde.Vorname),
new XElement("Nachname", kunde.Nachname),
new XElement("Status", kunde.Status)));
Persistieren können wir die Platinkunden mittels
platinKunden.Save("platinkunden.xml");
Erwartungsgemäß sieht das Resultat wie folgt aus:
<platinkunden>
<kunde id="2">
<vorname>Bill</vorname>
<nachname>Gates</nachname>
<status>Platin</status>
</kunde>
<kunde id="3">
<vorname>Scott</vorname>
<nachname>Guthrie</nachname>
<status>Platin</status>
</kunde>
</platinkunden>