Bagaimana membaca XML Data dari Stream dalam.NET Framework SDK

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 301228 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan bagaimana untuk menggunakan XmlTextReader kelas untuk membaca Extensible Markup Language (XML) dari sungai. The Streaming dapat datang dari berbagai sumber, seperti aliran byte dari server, file, atau a TextReader kelas.

Persyaratan

Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang akan Anda perlukan:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, atau Windows NT 4.0 Server
  • Microsoft Visual Studio.NET
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan berikut topik:
  • XML terminologi
  • Membuat dan membaca XML

Bagaimana membaca XML Data dari Sungai

  1. Membuka Visual Studio.NET.
  2. Membuat baru Microsoft Visual Basic (VB) atau Microsoft Visual C# konsol aplikasi.

    CATATAN: Langkah-langkah berikut menyediakan penjelasan rinci tentang bagaimana membangun aplikasi. Anda juga dapat pergi langsung ke langkah 10, di mana selesai kode disediakan.
  3. Pastikan bahwa proyek berisi referensi untuk System.xml dan System.io namespace.
  4. Menggunakan impor pernyataan di XML namespace sehingga Anda tidak perlu memenuhi syarat XmlTextReader Deklarasi di namespace itu kemudian dalam kode Anda. Anda harus menggunakan pernyataan impor sebelum untuk deklarasi lain sebagai berikut:
    Visual Basic.Kode bersih
    Imports System.Xml
    Imports System.IO
    						
    Visual C# kode
    using System.Xml;
    using System.IO;
    						
  5. Membuat atau mengambil aliran XML. Aliran adalah abstrak representasi dari perangkat input atau output yang merupakan sumber, atau tujuan untuk, data (dalam kasus, ini data XML). Anda dapat menulis dan membaca dari streaming, yang terbaik divisualisasikan sebagai aliran byte.

    Aliran yang digunakan untuk memberikan kemerdekaan dari perangkat dan karenanya tidak ada program perubahan jika, misalnya, sumber arus perubahan. Ada beberapa cara yang berbeda untuk menciptakan aliran untuk XmlTextReader kelas. Pilih salah satu contoh kode berikut untuk menambah Prosedur utama modul default:
    • Contoh kode yang menggunakan StringReader objek:

      The StringReader objek membaca karakter dari string dan mengambil dalam nilai string selama konstruksi.Visual Basic.NET kode
      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>")
      						
      C# kode
      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>");
      						
    • Contoh kode yang menggunakan StreamReader objek:

      The StreamReader objek digunakan untuk membaca karakter dari file. Itu dibaca di nama file untuk membaca selama konstruksi:Visual Basic.NET kode
      Dim stream as System.IO.StreamReader
      ' Loads the XML data in the file books.xml in a new stream.
      stream = New StreamReader ("books.xml")
      						
      C# kode
      System.IO.StreamReader stream = new System.IO.StreamReader ("books.xml");
      						
      Perhatikan bahwa Books.xml file yang digunakan di sini. Anda dapat membuat Anda sendiri Books.xml file. File Books.xml contoh juga dikirim dengan Visual Studio.Bersih dan.NET Framework SDK.

  6. Membangun XmlTextReader kelas dengan aliran. Biasanya, XmlTextReader digunakan jika Anda perlu untuk mengakses XML sebagai data mentah tanpa overhead dari Document Object Model (DOM); oleh karena itu, XmlTextReader menyediakan mekanisme yang lebih cepat untuk membaca XML. XmlTextReader memiliki berbeda konstruktor untuk menentukan lokasi XML data. Kode berikut beban XmlTextReader dari Sungai:
    Visual Basic.NET kode
    Dim reader As XmlTextReader = New XmlTextReader (stream)
    						
    C# kode
    XmlTextReader reader = null;	
    reader = new XmlTextReader (stream);
    						
  7. Membaca melalui XML. Setelah konfigurasi dimuat, XmlTextReader melakukan berurutan membaca untuk memindahkan di XML data dan menggunakan The Baca metode untuk mendapatkan catatan berikutnya. Mengembalikan nilai False jika ada tidak ada lebih banyak catatan.
    Visual Basic.NET kode
    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
    						
    C# kode
    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. Memeriksa simpul. Untuk memproses XML data, setiap record telah jenis node, yang dapat ditentukan dari NodeType properti. The Nama dan Nilai properti kembali nama node (elemen atribut nama dan) dan simpul nilai (teks node) saat ini node (atau catatan). The NodeType Pencacahan menentukan jenis node. Contoh berikut menampilkan nama unsur-unsur dan jenis dokumen. Perhatikan bahwa contoh ini mengabaikan elemen atribut.
    Visual Basic.NET kode
    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
    						
    C# kode
    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. Memeriksa atribut. Elemen node jenis dapat mencakup daftar atribut node yang berhubungan dengan mereka. The MovetoNextAttribute metode bergerak secara berurutan melalui setiap atribut dalam elemen. Penggunaan HasAttributes properti untuk menguji apakah simpul memiliki atribut apa pun. The AttributeCount properti kembali jumlah atribut untuk node saat ini.
    Visual Basic.NET kode
    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
    						
    C# kode
    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. Kode lengkap disediakan di sini untuk kenyamanan Anda.
    Visual Basic.Net kode
    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
    						

    C# kode
    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. Membangun dan menjalankan proyek Anda.

REFERENSI

Untuk selengkapnya, lihat "XML di Microsoft.NET:.NET Kerangka XML kelas dan C# menawarkan sederhana, Scalable manipulasi Data"artikel dari MSDN majalah pada Web site Microsoft berikut:
http://MSDN.Microsoft.com/msdnmag/Issues/01/01/XML/default.aspx
Untuk informasi lebih lanjut tentang XmlReader, StreamReader, dan StringReader kelas, lihat Microsoft.NET Framework kelas perpustakaan dokumentasi.

Untuk informasi lebih lanjut tentang menggunakan XmlReader untuk membaca XML data, lihat Microsoft.NET Framework Developer Panduan dokumentasi.

Properti

ID Artikel: 301228 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft .NET Framework 1.1
Kata kunci: 
kbhowtomaster kbmt KB301228 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:301228

Berikan Masukan

 

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