Bagaimana membaca XML dari berkas dengan menggunakan Visual C#

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

Pada Halaman ini

Ringkasan

Artikel ini menjelaskan cara menggunakan XmlTextReader kelas untuk membaca Extensible Markup Language (XML) dari suatu berkas. XmlTextReader menyediakan langsung parsing dan tokenizing XML dan mengimplementasikan XML 1.0 spesifikasi serta namespaces dalam spesifikasi XML dari Waring Wera Wanua Consortium (W3C). Artikel ini menyediakan akses cepat, tokenized stream ke XML daripada menggunakan object model seperti XML Model Obyek kumpulan dokumen (DOM) (DOM).

Persyaratan

Daftar berikut ini menguraikan fitur peranti penangkap keras, peranti penangkap lunak, jaringan infrastruktur, dan Service Pack yang Anda butuhkan:
  • Microsoft Visual Studio 2005 atau Microsoft Visual Studio .NET
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan berikut topik:
  • Terminologi XML
  • Membuat dan membaca XML file

Bagaimana membaca XML dari berkas

Contoh ini menggunakan file bernama Books.xml. Anda dapat membuat file Books.xml Anda sendiri atau menggunakan berkas contoh yang disertakan dengan QuickStarts .NET Software Development Kit (SDK) di dalam folder berikut:
\Program Files\Microsoft visual Studio .NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
Anda harus menyalin Books.xml untuk \Bin\Debug folder, yang terletak di bawah folder di mana Anda membuat proyek ini. Books.xml juga tersedia untuk di-download. Lihat "Referensi"bagian untuk lokasi download.
  1. Mulai Visual Studio 2005 atau Visual Studio .NET.
  2. Membuat Visual C# konsol aplikasi baru. Anda melanjutkan langsung ke "Daftar kode lengkap"bagian atau terus melalui langkah-langkah ini untuk membangun aplikasi.
  3. Pastikan bahwa proyek berisi referensi ke Majelis System.Xml.dll .
  4. Tentukan menggunakan direktif pada System.Xml namespace sehingga Anda tidak diharuskan untuk memenuhi syarat Deklarasi XmlTextReader kemudian dalam kode Anda. Anda harus menggunakan menggunakan direktif sebelum deklarasi-deklarasi lain.
    using System.Xml;
    					
  5. Membuat sebuah instance dari objek XmlTextReader , dan menempatkannya dengan XML file. Biasanya, kelas XmlTextReader digunakan jika Anda perlu mengakses XML sebagai data mentah tanpa overhead DOM; dengan demikian, kelas XmlTextReader menyediakan mekanisme yang lebih cepat untuk membaca XML. Kelas XmlTextReader memiliki berbeda konstruktor untuk menentukan lokasi data XML. Kode berikut menciptakan sebuah instance dari kelas XmlTextReader dan load Books.xml file. Tambahkan kode berikut untuk prosedur utama Class1.
    XmlTextReader reader = new XmlTextReader ("books.xml");
    					
  6. Membaca melalui XML. (Perhatikan bahwa langkah ini menunjukkan luar "sementara" loop, dan dua langkah-langkah menunjukkan cara menggunakan loop itu untuk membaca XML.) Setelah Anda membuat objek XmlTextReader , menggunakan metode baca untuk membaca XML data. Metode baca terus bergerak melalui XML file secara berurutan sampai mencapai akhir file, pada yang menunjuk kembali metode membaca nilai "Palsu."
    while (reader.Read()) 
    {
        // Do some work here on the data.
    	Console.WriteLine(reader.Name);
    }
    Console.ReadLine();
    					
  7. Memeriksa simpul. Untuk memproses XML data, setiap record memiliki jenis node yang dapat ditentukan dari NodeType properti. Nama dan nilai properti kembali nama node (elemen dan atribut nama) dan nilai node (node teks) node saat ini (atau catatan). Pencacahan NodeType menentukan jenis node. Kode contoh berikut Menampilkan nama unsur-unsur dan tipe kumpulan dokumen. Catatan bahwa sampel ini mengabaikan elemen atribut.
    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. Periksa atribut. Elemen node jenis dapat mencakup daftar node atribut yang berhubungan dengan mereka. Metode MovetoNextAttribute bergerak secara berurutan setiap atribut dalam elemen. Menggunakan properti HasAttributes untuk menguji apakah node memiliki atribut apapun. Properti AttributeCount kembali jumlah atribut untuk node saat ini.
    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. Menyimpan dan menutup proyek Anda.

Daftar kode lengkap

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();
        }
    }
}
				

Sampel Keluaran

<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>
				

Pemecahan masalah

Ketika Anda menguji kode, Anda mungkin menerima pesan galat pengecualian: eksepsi tidak tertangani: System.Xml.XmlException: deklarasi XML yang tak terduga. Deklarasi XML harus node pertama dalam kumpulan dokumen, dan karakter ruang putih tidak diperbolehkan untuk muncul sebelum itu.

Informasi tambahan: galat sistem. Pengecualian kesalahan terjadi pada baris kode berikut: sementara
(reader.Read())
Pengecualian kesalahan disebabkan oleh petunjuk pemrosesan tak-sahih. Sebagai contoh, pengolahan instruksi mungkin berisi ruang asing. Berikut ini adalah contoh dari petunjuk pemrosesan tak-sahih:
<?xml version='1.0' ?>
Tag xml ini memiliki ruang sebelumnya '<? bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the="" error.=""></?>

REFERENSI

Berkas berikut tersedia untuk di-download dari Microsoft Download Center:
Perkecil gambar iniPerbesar gambar ini
Download
Download paket Books.exe sekarang.
Untuk informasi lebih lanjut tentang kelas .NET Framework XML dan C#, kunjungi Website Microsoft Developer Network (MSDN) berikut:
http://msdn.Microsoft.com/en-US/Magazine/cc302158.aspx
Untuk informasi lebih lanjut tentang kelas XmlReader , kunjungi Website MSDN berikut:
.aspx http://msdn2.Microsoft.com/en-US/Library/System.XML.xmlreader (vs.71)
Untuk selengkapnya tentang cara menggunakan XmlReader untuk membaca XML data, kunjungi Website MSDN berikut:
.aspx http://msdn2.Microsoft.com/en-US/Library/aa720470 (VS.71)

.aspx http://msdn2.Microsoft.com/en-US/Library/tfz3cz6w (vs.71)

Properti

ID Artikel: 307548 - Kajian Terakhir: 15 November 2012 - Revisi: 3.0
Berlaku bagi:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
Kata kunci: 
kbdownload kbhowtomaster kbmt KB307548 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: 307548

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