Einfaches XML-Auslesen in .NET
Geschrieben von: Christoph Wille 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ßbemerkungHeute 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 CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
Arbeiten mit dem SQL Server XML View Mapper 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.
©2000-2006 AspHeute.com |