Tags: | Posted by AlexanderZeitler on 8/31/2009 7:51 PM | Comments (3)

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>

Comments

Comments are closed