Gewusst wie: Lesen von XML aus einer Datei mithilfe von Visual C#

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 307548
Eine Microsoft Visual Basic-NET-Version dieses Artikels finden Sie unter 301225.

Dieser Artikel bezieht sich auf den folgenden Namespace für Microsoft.NET Framework-Klassenbibliothek:
  • System.Xml
Zusammenfassung
Dieser Artikel beschreibt, wie mithilfe die XmlTextReader -Klasse (XML = Extensible Markup Language) aus einer Datei gelesen wird. XmlTextReader ermöglicht direkte Analyse und tokenerstellung von XML implementiert die XML 1.0-Spezifikation sowie die Namespaces in der XML-Spezifikation des World Wide Web Consortium (W3C). Dieser Artikel bietet schnellen, tokenaktivierten Streamzugriff auf XML, anstatt ein Objektmodell wie das Model (DOM).

Voraussetzungen

Die folgende Liste enthält die empfohlene Hardware, Software, Netzwerkinfrastruktur und Servicepacks, die Sie benötigen:
  • Microsoft Visual Studio 2005 oder Microsoft Visual Studio NET
Es wird vorausgesetzt, dass Sie mit folgenden Themen vertraut sind:
  • XML-Terminologie
  • Erstellen und Lesen einer XML-Datei

Gewusst wie: Lesen von XML aus einer Datei

Dieses Beispiel verwendet eine Datei namens "Books.xml". Sie können eine eigene Datei Books.xml oder verwenden die NET Software Development Kit (SDK) QuickStarts in folgendem Ordner enthaltene Beispieldatei:
\Programme\Microsoft Visual Studio .NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
Sie müssen "Books.xml" in den Ordner \Bin\Debug kopieren, der sich in dem Ordner, in dem Sie dieses Projekt erstellen, befindet. Books.XML steht zum Download zur Verfügung. Siehe das "Referenzen"die Downloadadresse für Abschnitt.
  1. Starten Sie Visual Studio 2005 oder Visual Studio NET.
  2. Erstellen Sie ein neues Visual C# Konsolenanwendungsprojekt. Fahren Sie direkt mit der "Vollständige Codeliste"fortfahren Sie oder die folgenden Schritte zum Erstellen der Anwendung.
  3. Stellen Sie sicher, dass das Projekt einen Verweis auf der System.Xml.dll -Assembly enthält.
  4. Geben Sie die using -Direktive auf den System.Xml -Namespace, damit Sie keine XmlTextReader Deklarationen später in Ihrem Code vornehmen müssen. Sie müssen die using -Direktive vor allen anderen Deklarationen verwenden.
    using System.Xml;					
  5. Erstellen Sie eine Instanz eines Objekts XmlTextReader und füllen Sie es mit der XML-Datei. Die XmlTextReader -Klasse wird normalerweise verwendet, wenn Sie die XML-Daten als unformatierte Daten ohne den Overhead von DOM zugreifen möchten; die XmlTextReader-Klasse bietet somit einen schnelleren Mechanismus zum Lesen von XML. Die XmlTextReader-Klasse verfügt über verschiedene Konstruktoren zum Angeben des Speicherorts der XML-Daten. Der folgende Code erstellt eine Instanz der Klasse und lädt die Datei Books.xml. Fügen Sie folgenden Code zu der Prozedur Main von Class1.
    XmlTextReader reader = new XmlTextReader ("books.xml");					
  6. Die XML-Daten lesen. (Beachten Sie, dass dieser Schritt eine äußere "while"-Schleife zeigt, und die nächsten beiden Schritte veranschaulichen, wie diese Schleife zum Lesen des XML-Code verwendet wird.) Nach dem Erstellen des XmlTextReader -Objekts verwenden Sie der Read -Methode zum Lesen von XML-Daten. Die Read-Methode geht sequenziell weiter durch die XML-Datei, bis das Ende der Datei erreicht wird, an diesem Punkt gibt die Read-Methode "False" zurück.
    while (reader.Read()) {    // Do some work here on the data.	Console.WriteLine(reader.Name);}Console.ReadLine();					
  7. Untersuchen Sie die Knoten an. Zum Verarbeiten der XML-Daten besitzt jeder Datensatz einen Knotentyp, der anhand der Eigenschaft NodeType ermittelt werden kann. Die Eigenschaften Name und Wert geben den Knotennamen (die Element- und Attributnamen Namen) und den Knotenwert (den Knotentext) des aktuellen Knotens (oder Datensatzes) zurück. Die Aufzählung NodeType bestimmt den Knotentyp. Der folgende Beispielcode zeigt den Namen der Elemente und den Dokumenttyp an. Beachten Sie, dass dieses Beispiel Elementattribute ignoriert.
    while (reader.Read()) {    switch (reader.NodeType)     {        case XmlNodeType.Element: // The node is an element.            Console.Write("<" + reader.Name);   Console.WriteLine(">");            break;  case XmlNodeType.Text: //Display the text in each element.            Console.WriteLine (reader.Value);            break;  case XmlNodeType. EndElement: //Display the end of the element.            Console.Write("</" + reader.Name);   Console.WriteLine(">");            break;    }}					
  8. Untersuchen Sie die Attribute. Elementknotentypen können eine Liste von Attributknoten enthalten, die ihnen zugeordnet sind. Die MovetoNextAttribute -Methode durchläuft nacheinander jedes Attribut im Element. Verwenden Sie die HasAttributes -Eigenschaft, welche überprüft, ob der Knoten über Attribute verfügt. Die AttributeCount -Eigenschaft gibt die Anzahl der Attribute für den aktuellen Knoten.
    while (reader.Read()) {       switch (reader.NodeType)        {           case XmlNodeType.Element: // The node is an element.               Console.Write("<" + reader.Name);               while (reader.MoveToNextAttribute()) // Read the attributes.                   Console.Write(" " + reader.Name + "='" + reader.Value + "'");      Console.WriteLine(">");               break;     case XmlNodeType.Text: //Display the text in each element.               Console.WriteLine (reader.Value);               break;     case XmlNodeType. EndElement: //Display the end of the element.               Console.Write("</" + reader.Name);      Console.WriteLine(">");               break;       }   }					
  9. Speichern und schließen Sie Ihres Projekt.

Vollständige Codeliste

using System;using System.Xml;namespace ReadXMLfromFile{    /// <summary>    /// Summary description for Class1.    /// </summary>    class Class1    {        static void Main(string[] args)        {            XmlTextReader reader = new XmlTextReader ("books.xml");            while (reader.Read())             {                switch (reader.NodeType)                 {                    case XmlNodeType.Element: // The node is an element.                        Console.Write("<" + reader.Name);                        Console.WriteLine(">");                        break;                    case XmlNodeType.Text: //Display the text in each element.                        Console.WriteLine (reader.Value);                        break;                    case XmlNodeType.EndElement: //Display the end of the element.                        Console.Write("</" + reader.Name);                        Console.WriteLine(">");                        break;                }            }            Console.ReadLine();        }    }}				

Ausgabe

<bookstore><book><title>The Autobiography of Benjamin Franklin</title><author><first-name>Benjamin</first-name><last-name>Franklin</last-name></author><price>8.99</price></book><book><title>The Confidence Man</title><author><first-name>Herman</first-name><last-name>Melville</last-name></author><price>11.99</price></book><book><title>The Gorgias</title><author><name>Plato</name></author><price>9.99</price></book></bookstore>				

Problembehandlung:

Wenn Sie den Code testen, können Sie folgende Ausnahmefehlermeldung erhalten: unbehandelte Ausnahme: System.Xml.XmlException: unerwartete XML-Deklaration. Die XML-Deklaration muss der erste Knoten im Dokument sein und dürfen keine Leerzeichen davor.

Zusätzliche Informationen: Systemfehler. Die Ausnahme tritt in der folgenden Codezeile auf: während
(reader.Read())
Eine ungültige Anweisung ist der Ausnahmefehler zurückzuführen. Anweisung kann z.B. überflüssige Leerzeichen enthalten. Es folgt ein Beispiel für eine ungültige Anweisung:
<?xml version='1.0' ?>
Dieses XML-Tag hat einen vorherigen Speicherplatz der '<’ bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the=""></’>

REFERENZEN

Die folgende Datei steht zum Download im Microsoft Download Center zur Verfügung:
Weitere Informationen zu.NET Framework XML Classes und C# finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website:Weitere Informationen zur Klasse XmlReader finden Sie auf der folgenden MSDN-Website:Weitere Informationen darüber, wie XML-Daten mit XmlReader finden Sie auf der folgenden MSDN-Websites:

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 307548 – Letzte Überarbeitung: 04/23/2016 00:14:00 – Revision: 11.0

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition

  • kbdownload kbhowtomaster kbmt KB307548 KbMtde
Feedback