Jak číst XML Data z v proudu.Rozhraní .NET Framework SDK

Překlady článku Překlady článku
ID článku: 301228 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak použít XmlTextReader Třída čtení z datového proudu Extensible Markup Language (XML). Na proud mohou pocházet z různých zdrojů, například ze serveru, tok bajtů soubor, nebo TextReader Třída.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťové infrastruktury a aktualizace service Pack, které budete potřebovat:
  • Microsoft Windows 2000 Professional, Windows 2000 Server Systém Windows 2000 Advanced Server nebo Windows NT 4.0 Server
  • Microsoft Visual Studio.NET
Tento článek předpokládá, že jste obeznámeni s následujícími témata:
  • Terminologie jazyka XML
  • Vytváření a čtení XML

Čtení dat XML z datového proudu

  1. Otevřete aplikaci Visual Studio.NET.
  2. Vytvoření nové aplikace Microsoft Visual Basic (VB) nebo Microsoft Aplikace Visual C# konzoly.

    POZNÁMKA:: Následující kroky poskytují podrobný popis, jak Vytvoření aplikace. Můžete také přejít přímo ke kroku 10, kde byla dokončena kód je k dispozici.
  3. Ujistěte se, že projekt obsahuje odkaz System.XML a System.IO obor názvů.
  4. Použijte příkaz IMPORTS na XML obor názvů tak, že není nutné pro získání XmlTextReader prohlášení v tomto jmenném prostoru později ve vašem kódu. Je nutné použít příkaz IMPORTS se před všemi ostatními deklaracemi takto:
    Visual Basic.ČISTÝ kód
    Imports System.Xml
    Imports System.IO
    						
    Visual C# kód
    using System.Xml;
    using System.IO;
    						
  5. Vytvořit nebo načíst proudu XML. Datový proud je abstrakt reprezentace vstupní nebo výstupní zařízení, která je zdrojem, nebo cíl pro dat (v tomto případě data XML). Lze zapisovat a číst z datový proud, který je nejlépe znázorněn jako tok bajtů.

    Jsou datové proudy zajistit nezávislost na zařízení a vyžadují proto žádný program je-li například zdroj proudu změní změní. Existuje několik vytvořit datový proud pro různé způsoby XmlTextReader Třída. Vyberte jednu z následujících ukázkách kódu přidat Hlavní procedury modulu výchozí:
    • Ukázka kódu, který používá StringReader objekt:

      Na StringReader objekt přečte znaků z řetězce a přebírá hodnotu řetězce během stavby.Visual Basic.NET kód
      Dim stream as System.IO.StringReader
      stream = new StringReader("<?xml version='1.0'?>" & _
      "<!-- This file is a book store inventory. -->" & _
      "<bookstore>" & _
      " <book genre=""autobiography"" ISBN=""1-861003-11-0"">" & _
      "   <title>The Autobiography of Benjamin Franklin</title>" & _
      "   <author>" & _
      "       <first-name>Benjamin</first-name>" & _
      "       <last-name>Franklin</last-name>" & _
      "   </author>" & _
      "   <price>8.99</price>" & _
      " </book>" & _
      "</bookstore>")
      						
      Kód jazyka C#
      StringReader stream;
      stream = new StringReader("<?xml version='1.0'?>" +
      	"<!-- This file represents a fragment of a book store inventory database. -->" +
      	"<bookstore>" +
      	" <book genre=\"autobiography\" publicationdate=\"1981\" ISBN=\"1-861003-11-0\">" +
      	"   <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 genre=\"novel\" publicationdate=\"1967\" ISBN=\"0-201-63361-2\">" +
      	"   <title>The Confidence Man</title>" +
      	"   <author>" +
      	"       <first-name>Herman</first-name>" +
      	"       <last-name>Melville</last-name>" +
      	"   </author>" +
      	"   <price>11.99</price>" +
      	" </book>" +
      	"  <book genre=\"philosophy\" publicationdate=\"1991\" ISBN=\"1-861001-57-6\">" +
      	"   <title>The Gorgias</title>" +
      	"   <author>" +
      	"       <name>Plato</name>" +
      	"   </author>" +
      	"   <price>9.99</price>" +
      	" </book>" +
      	"</bookstore>");
      						
    • Ukázka kódu, který používá StreamReader objekt:

      Na StreamReader objekt se používá ke čtení znaků ze souborů. Přečte v název souboru ke čtení během stavby:Visual Basic.NET kód
      Dim stream as System.IO.StreamReader
      ' Loads the XML data in the file books.xml in a new stream.
      stream = New StreamReader ("books.xml")
      						
      Kód jazyka C#
      System.IO.StreamReader stream = new System.IO.StreamReader ("books.xml");
      						
      Všimněte si, že se zde používá soubor Books.xml. Můžete vytvořit vlastní Soubor Books.XML. Ukázkový soubor Books.xml je také dodáván se sadou Visual Studio.NET a.NET Framework SDK.

  6. Vytvoření XmlTextReader Třída s datový proud. Obvykle XmlTextReader je použit, pokud potřebujete získat přístup k souboru XML jako nezpracovaná data, aniž by nároky z modelu DOM (Document Object); proto XmlTextReader poskytuje rychlejší mechanismus pro čtení XML. XmlTextReader má pro určení umístění dat XML jiné konstruktory data. Následující kód načte XmlTextReader z datového proudu:
    Visual Basic.NET kód
    Dim reader As XmlTextReader = New XmlTextReader (stream)
    						
    Kód jazyka C#
    XmlTextReader reader = null;	
    reader = new XmlTextReader (stream);
    						
  7. Načtěte data XML. Po načtení XmlTextReader provádí sekvenční čtení přesunout přes XML data a používá na Pro čtení Metoda získat další záznam. Vrátí hodnotu NEPRAVDA, pokud neexistují žádné Další záznamy.
    Visual Basic.NET kód
    Do While (reader.Read())
        ' Do some work here on the data.
        Console.WriteLine(reader.Name)
    Loop
    
    ' Reading of the XML file has finished.
    Console.ReadLine() 'Pause
    						
    Kód jazyka C#
    while (reader.Read()) 
    {
        // Do some work here on the data.
        ...
    }
    
    while (reader.Read()) 
    {
        // Do some work here on the data.
    	Console.WriteLine(reader.Name);
    }
    Console.ReadLine();
    						
  8. Prozkoumejte uzly. Chcete-li zpracování dat XML, každý záznam má Typ uzlu, který lze určit NodeType Vlastnost. Na Název a Hodnota Vlastnosti vracejí název uzlu (názvy prvků a atributů) a hodnotu (text uzlu) aktuálního uzlu (nebo záznamu). Na NodeType výčet Určuje typ uzlu. Následující příklad Zobrazí název prvků a typ dokumentu. Všimněte si, že tento příklad ignoruje atributy prvků.
    Visual Basic.NET kód
    Do While (reader.Read())
    Select Case reader.NodeType
    Case XmlNodeType.Element 'Display beginning of element.
    Console.Write("<" + reader.Name)
    Console.WriteLine(">")
    Case XmlNodeType.Text 'Display the text in each element.
    Console.WriteLine(reader.Value)
    Case XmlNodeType.EndElement 'Display end of element.
    Console.Write("</" + reader.Name)
    Console.WriteLine(">")
    End Select
    Loop
    						
    Kód jazyka C#
    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 end of element.
                Console.Write("</" + reader.Name);
       Console.WriteLine(">");
                break;
        }
    }
    						
  9. Prozkoumejte atributy. Typy uzlů prvek lze zahrnout seznam uzlů atributů, které jsou s nimi spojeny. Na MovetoNextAttribute Metoda prochází sekvenčně jednotlivé atributy daného prvku. Použít HasAttributes Vlastnost otestovat, zda má uzel nějaké atributy. Na AttributeCount Vlastnost vrací počet atributů aktuálního uzlu.
    Visual Basic.NET kód
    Do While (reader.Read())
    Select Case reader.NodeType
    Case XmlNodeType.Element 'Display beginning of element.
    Console.Write("<" + reader.Name)
             If reader.HasAttributes Then 'If attributes exist
             	While reader.MoveToNextAttribute() 
    					'Display attribute name and value.
    Console.Write(" {0}='{1}'", reader.Name, reader.Value)
    End While
    End If
    Console.WriteLine(">")
    Case XmlNodeType.Text 'Display the text in each element.
    Console.WriteLine(reader.Value)
    Case XmlNodeType.EndElement 'Display end of element.
    Console.Write("</" + reader.Name)
    Console.WriteLine(">")
    End Select
    Loop
    						
    Kód jazyka C#
    while (reader.Read()) 
    {
        switch (reader.NodeType) 
        {
            case XmlNodeType.Element: // The node is an Element.
                Console.Write("<" + reader.Name);
    
                while (reader.MoveToNextAttribute()) // Read attributes.
                    Console.Write(" " + reader.Name + "='" + reader.Value + "'");
                Console.Write(">");
       Console.WriteLine(">");
                break;
      case XmlNodeType.Text: //Display the text in each element.
                Console.WriteLine (reader.Value);
                break;
      case XmlNodeType. EndElement: //Display end of element.
                Console.Write("</" + reader.Name);
       Console.WriteLine(">");
                break;
        }
    }
    						

  10. Kód dokončení je pro přehlednost uvedeny zde.
    Kód Visual Basic.Net
    Imports System.Xml
    Imports System.IO
    Module Module1
    
        Sub Main()
            Dim stream As System.IO.StreamReader
            ' Loads the XML data in the file books.xml in a new stream.
            stream = New StreamReader("books.xml")
            Dim reader As XmlTextReader = New XmlTextReader(stream)
            Do While (reader.Read())
                Select Case reader.NodeType
                    Case XmlNodeType.Element 'Display beginning of element.
                        Console.Write("<" + reader.Name)
                        If reader.HasAttributes Then 'If attributes exist
                            While reader.MoveToNextAttribute()
                                'Display attribute name and value.
                                Console.Write(" {0}='{1}'", reader.Name, reader.Value)
                            End While
                        End If
                        Console.WriteLine(">")
                    Case XmlNodeType.Text 'Display the text in each element.
                        Console.WriteLine(reader.Value)
                    Case XmlNodeType.EndElement 'Display end of element.
                        Console.Write("</" + reader.Name)
                        Console.WriteLine(">")
                End Select
            Loop
        End Sub
    
    End Module
    						

    Kód jazyka C#
    using System;
    using System.Xml;
    using System.IO;
    namespace ReadXMLFromStream
    {
    	/// <summary>
    	/// Summary description for Class1.
    	/// </summary>
    	class Class1
    	{
    		static void Main(string[] args)
    		{
    
    			System.IO.StreamReader stream = new System.IO.StreamReader ("books.xml");
    			XmlTextReader reader = null;	
    			reader = new XmlTextReader (stream);
    			while (reader.Read()) 
    			{
    				switch (reader.NodeType) 
    				{
    					case XmlNodeType.Element: // The node is an Element.
    						Console.Write("<" + reader.Name);
    
    						while (reader.MoveToNextAttribute()) // Read attributes.
    							Console.Write(" " + reader.Name + "='" + reader.Value + "'");
    						Console.Write(">");
    						Console.WriteLine(">");
    						break;
    					case XmlNodeType.Text: //Display the text in each element.
    						Console.WriteLine (reader.Value);
    						break;
    					case XmlNodeType. EndElement: //Display end of element.
    						Console.Write("</" + reader.Name);
    						Console.WriteLine(">");
    						break;
    				}
    			}
    
    		}
    	}
    }
    
    						
  11. Vytvoření a spuštění projektu.

Odkazy

Další informace naleznete v tématu "XML v aplikaci Microsoft.NET:.NET V článku třídy XML a C# nabízí jednoduché, škálovatelné manipulace s daty" z Časopis MSDN na následujícím webu společnosti Microsoft:
http://msdn.microsoft.com/msdnmag/issues/01/01/XML/default.aspx
Další informace o XmlReader, StreamReader, a StringReader třídy, naleznete v sadě Microsoft.Knihovna tříd .NET Framework dokumentace.

Další informace o použití XmlReader Chcete-li načíst XML data, naleznete v sadě Microsoft.Rozhraní .NET Framework Developer Příručce.

Vlastnosti

ID článku: 301228 - Poslední aktualizace: 12. května 2011 - Revize: 5.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework 1.1
Klíčová slova: 
kbhowtomaster kbmt KB301228 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:301228

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com