Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Einfaches XML-Auslesen in .NET

Geschrieben von: Christoph Wille
Kategorie: XML

Im heutigen Artikel möchte ich Ihnen zeigen, wie einfach es in .NET geworden ist, mit XML zu arbeiten. Um einen Vergleich zu erhalten, habe ich mir zum Ziel gesetzt, den Code des Artikels Auslesen von XML Dateien mit dem DOM nachzubauen.

Der Artikel verwendet auch heute wieder die Datei currentarticles.xml, welche die fünf neuesten Artikel von AspHeute.com beinhaltet. Die Struktur dieser XML Datei sieht wie folgt aus:

<?xml version="1.0" encoding="Windows-1252"?>
<articles>
 <article>
   <title></title>
   <author></author>
   <url></url>
   <date></date>
   <description></description>
 </article>
</articles>

Das <article> Element wiederholt sich fünf Mal in dieser Datei.

Wer heute mit dem MSXML Parser und dem DOM (Document Object Model) arbeitet, kennt dessen hierarchischen Aufbau. Die gute Nachricht - Sie müssen nicht allzuviel umlernen, bekommen aber vieles an neuer Funktionalität dazu. Alle Standards inklusive XPath sind in einfach zu verwendenden Objekten verpackt.

Da wir heute aber einen Einstieg in XML für .NET machen, möchte ich gar nicht zu weit vorgreifen, und das Beispiel für sich sprechen lassen:

<% @Page Language="C#" %>
<% @Import Namespace="System.Xml" %>
<%
XmlDocument doc = new XmlDocument();
doc.Load(Page.MapPath("currentarticles.xml"));
    
XmlElement root = doc.DocumentElement;

foreach(XmlNode article in root.ChildNodes)
{
  Response.Write(@"<font size=""1"">[" + article["date"].InnerText);
  Response.Write("] </font>");
  Response.Write("<b>" + article["title"].InnerText + "</b><br>");
  Response.Write("<p>" + article["description"].InnerText + "</p>\r\n");
}
%>

Der Code ist leicht lesbar. Zuerst importiere ich den System.Xml Namespace, und erstelle mir ein XmlDocument Objekt, in das ich meine XML Datei lade (Load). Von meinem Dokument muß ich nun zum Root Element (<articles>), welches meine fünf Kindelemente (=Artikel) enthält. Dazu verwende ich die Eigenschaft DocumentElement.

Das Iterieren über die Elemente funktioniert dankenswerterweise mit einer foreach Schleife, wobei die ChildNodes Collection zu Verwendung kommt - sie enthält die Artikel. Der Output funktioniert hervorragend einfach: da jeder Artikel weitere Kindelemente (Titel, etc) hat, verwende ich den Indexer der Klasse:

XmlElement xel = article["title"];
if (null != xel) Response.Write(xel.InnerText);

Hier habe ich die "korrekte" Verwendung dargestellt - es könnte ja sein, daß das gewünschte Element nicht existiert. In diesem Fall wird null geliefert. Da ich in meinem Beispiel direkt auf InnerText durchgreife, könnte ich im Falle des Fehlens des Elements eine Null-Reference Exception erhalten. Damit so etwas bei einem wichtigen Element wie Titel nicht passiert, sollte man ein Schema (XSD) anlegen.

Damit haben wir's auch schon - die Artikel werden ausgeben. Das Ganze sieht dann im Browser wie folgt aus:

Das Verschönern des Outputs überlasse ich Ihnen als Fingerübung.

Schlußbemerkung

Heute habe ich gezeigt, wie das Auslesen von XML unter .NET funktioniert, verglichen zu Code aus ASP und dem MSXML Parser. Obwohl wir nur wenige der vielen Klassen gestreift haben, können Sie bereits mit einfachen Ausgaben beginnen.

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

Arbeiten mit dem SQL Server XML View Mapper
Auslesen von XML Dateien mit dem DOM
C# XML-Kommentare — Dokumentation von selbst

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.