.
Anmeldung | Registrieren | Hilfe |
Suchen
Home Foren News Member Offers Termine Developer Blogs Knowledge Base

Navigation

Navigationslinks überspringen.
Knowledge Base reduzierenKnowledge Base
Tutorials reduzierenTutorials
Webentwicklung
Cliententwicklung
Datenbankentwicklung
IT Professional
Sharepoint
Sprachspezifisch reduzierenSprachspezifisch
C#
Visual Basic
C++
XAML
SQL
JavaScript
Erfahrungsberichte reduzierenErfahrungsberichte
Entwicklersoftware
Bücher
FAQ Grundlagen

Verknüpfungen

  • Knowledge Base durchsuchen
  • Hilfe zur Knowledge Base
  • RSS Feed
  • Twitter

LINQ to XML Teil 1 – Erstellen einer XML Datei

Einleitung

LINQ ist die Abkürzung für Language INtegrated Query, dies ist eine Abfragesprache die mit C# 3.0 in .NET eingeführt wurde. Der Vorteil von LINQ ist, dass die Abfragen nicht mehr per String im Quelltext eingebunden werden müssen. Die Abfragen werden bei LINQ durch den Compiler geprüft und optimiert. Dies bedeutet, eine fehlerhafte Abfrage kann nicht kompiliert werden. Der Fehler kann so sehr früh erkannt werden und tritt nicht erst zur Laufzeit auf, eventuell sogar erst beim Kunden.
Mit LINQ können nicht nur Datenbanken abgefragt werden, sondern auch DataSets, Objekte oder XML. In dieser Artikelserie geht es ausschließlich um die Abfrage von XML.

Erstellen eines XML Dokuments

Ein XML Dokument wird bei der Verwendung nicht durch die Klasse XMLDocument repräsentiert sondern durch die Klasse XDocument. Um ein minimales XML Dokument zu erstellen, muss ein Objekt vom Typ XDocument wie folgt instanziiert werden:

var Adressen = new XDocument( 
    new XElement("Container", "Inhalt") 
    ); 

Hinweis:
In XML Dateien dürfen 4 Zeichen nicht direkt verwendet werden: „<“, „>“, das Apostroph und die Anführungszeichen. Diese Zeichen werden automatisch umgewandelt. Zum Beispiel wird aus < &gt;
Der Konstruktor des XDocument erwartet im einfachsten Fall ein Array von Objekten. Es wird in diesem Beispiel nur ein XElement erstellt und übergeben. Das XML Dokument würde folgendermaßen aussehen:

< Container>Inhalt</ Container >

Wer mit der XML Sytax vertraut ist, wird jetzt feststellen, daß hier die XML Deklaration fehlt, damit ein valides XML Dokument entsteht. Der folgende Code zeigt, wie diese Deklaration erstellt wird:

var Adressen = new XDocument( 
    new XDeclaration("1.0", "utf-8", "yes"), 
    new XElement("Container", "Inhalt") 
    ); 

Nun sieht die Ausgabe wie folgt aus:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Container>Inhalt</Container> 

Der Konstruktor der Klasse XElement kann beliebig viele andere Objekte aufnehmen so wird es sehr einfach, mehrere Objekte zu verschachteln wie das Beispiel zeigt:

var Adressen = new XDocument( 
    new XDeclaration("1.0", "UTF-16", "yes"), 
    new XComment("Kommentar"), 
    new XElement("Adressen", 
                 new XElement("Adresse", 
                              new XElement("Name", "Paul Faul"), 
                              new XElement("Telefon", "000"), 
                              new XElement("Anschrift", 
                                           new XElement("Straße", "Musterstraße 1"), 
                                           new XElement("Stadt", "Musterstadt"), 
                                           new XElement("Postleitzahl", "99999") 
                                  ) 
                     ) 
        ) 
    );

Um das erstellte XML Dokument abzuspeichern, bietet die Klasse XDocument die Methode Save an:

Adressen.Save("D:\\test.xml"); 

Einfacher geht es kaum.

Im Anhang befindet sich ein kleines Beispielprojekt zum Ausprobieren.
Im nächsten Teil geht es um die Abfrage von XML Dateien.

Download Beispielprojekt

von Jan Welker, 19.06.2008 zugeordnet zu C# , Cliententwicklung , Tutorials , Webentwicklung .

Weiterführende Artikel

LINQ to XML Teil 2 – Abfragen einer XML Datei
http://dotnet-forum.de/knowledgebase/articles/2008/06/21/296-linq-to-xml-teil-2-ndash-abfragen-einer-xml-datei.aspx

Kommentare

Eine XML wird ja nur einmal erstellt. Warum also LINQ-Code dafür schreiben, wenn es Modeling tools dafür gibt? z.B. in VS XSD tools benutzen um das Schema zu erstellen, welches mir genauso die xml struktur erstellt. Warum also linq zum einmaligen erstellen einer XML? Ansonsten natürlich danke für deine Mühe :)
von bastien, 20.03.2009.

Hallo bastien,
Ich habe die Artikelserie nach den CRUD Prinzip gegliedert, desswegen hab ich mit dem Erstellen angefangen.
Jan
von jan welker, 16.08.2009.

Eigener Kommentar

Sie müssen angemeldet sein, um ein Kommentar zu erstellen.
  • Schwierigkeit: Einsteiger
  • Views: 17470
  • Zur Druckversion
  • Artikel von Jan Welker

Kick it on dotnet-kicks.de

Artikel

Autor

Kick it!

Wenn ihnen dieser Artikel gefällt, bitte "kicken" sie ihn.

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum