Cara membaca XML data dari berkas dengan menggunakan Visual C++

PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.

Klik disini untuk melihat versi Inggris dari artikel ini: 815658
Untuk versi Microsoft Visual C# .NET dari artikel ini, lihat 307548.

Untuk versi Microsoft Visual Basic .NET dari artikel ini, lihat 301225.

Artikel ini merujuk ke Microsoft .NET Framework perpustakaan kelas namespace yang berikut ini:

System.xml

DALAM TUGAS INI

Ringkasan
Artikel ini menjelaskan cara menggunakan kelas XmlTextReader untuk membaca XML data dari berkas. Kelas XmlTextReader menyediakan langsung parsing dan tokenizing data XML. Kelas XmlTextReader juga menerapkan spesifikasi XML 1.0, selain ruang nama, dalam spesifikasi XML yang didefinisikan oleh Waring Wera Wanua Consortium (W3C). Artikel ini menjelaskan cara cepat, tokenized aliran akses ke data XML alih-alih menggunakan model objek, seperti XML Model Obyek kumpulan dokumen (DOM) (DOM).

cadangan

Persyaratan

Artikel ini mengasumsikan bahwa Anda sudah terbiasa dengan topik berikut ini:
  • Terminologi XML
  • Cara membuat dan cara membaca berkas XML

Daftar berikut ini mencantumkan peranti penangkap keras yang disarankan, peranti penangkap lunak, jaringan infrastruktur, dan Service Pack yang Anda butuhkan:
  • Microsoft Visual Studio .NET
  • Microsoft Visual Studio 2005
cadangan

Membaca XML data dari berkas

Contoh dalam artikel ini menggunakan berkas yang bernama Books.xml. Anda dapat membuat Books.xml file, atau Anda dapat menggunakan contoh berkas yang disertakan dengan QuickStarts (SDK) kit pengembangan peranti penangkap lunak Microsoft .NET. Berkas Books.xml juga tersedia untuk di-download dari Microsoft Download Center:Anda harus menyalin berkas Books.xml ke project folder.

Untuk membaca XML data dari berkas, ikuti langkah-langkah berikut:
  1. Mulai Visual Studio Visual Studio .NET 2002. NET2003, atau Visual Studio 2005.
  2. Pada File menu, arahkan kebaru, dan kemudian klik Project.

    Proyek baru kotak dialog akan muncul.
  3. Pada Jenis proyek, klik VisualC ++ proyek.

    Catatan Dalam Visual Studio 2005 VisualC ++ proyek diubah untuk Visual C++.
  4. Pada pola dasar, klikBerhasil C++ aplikasi jika Anda menggunakan Visual Studio. NET2002.

    Pada pola dasar, klik ConsoleApplication (.NET) jika Anda menggunakan Visual Studio .NET 2003.

    Pola dasar, klik CLR ConsoleApplication<b00> </b00> jika Anda menggunakan Visual Studio 2005.
  5. Di kotak nama , ketikQ815658, kemudian klik OK.
  6. Menambahkan referensi ke System.xml.dll theproject.Untuk informasi tambahan tentang cara menambahkan referensi ke proyek Visual C++ dikelola, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
    310674 CARA: Menambahkan referensi ke proyek Visual C++ terkelola
  7. Tentukan menggunakan direktif dalam namespace System::Xml sebagai berikut:
    using namespace System::Xml;
    Anda melakukan hal ini sehingga Anda tidak harus memenuhi syarat XmlTextReader deklarasi kelas nanti di kode. Anda harus menggunakan menggunakan direktif sebelum deklarasi apa pun.
  8. Membuat contoh XmlTextReader objek. Mengisi objek XmlTextReader dengan berkas .xml.

    Biasanya, kelas XmlTextReader digunakan apabila Anda harus mengakses data XML mentah tanpa theoverhead DOM. Oleh karena itu, kelas XmlTextReader menyediakan cara cepat untuk membaca XML data. Kelas XmlTextReader memiliki konstruktor berbeda yang menentukan lokasi theXML data.

    Kode berikut membuat contoh kelas XmlTextReader kemudian memuat berkas Books.xml. Tambahkan thefollowing kode untuk fungsi _tmain :
    XmlTextReader* reader = new XmlTextReader ("books.xml");
    Catatan Visual C++ 2005 fungsi _tmain diubah untuk fungsi utama .
  9. Membaca data XML.

    Catatan Langkah ini menunjukkan loop luar sementara . Stepsthat dua mengikuti langkah ini menunjukkan cara menggunakan loop saat membaca XML data.

    Setelah youcreate XmlTextReader objek, gunakan metode Baca untuk membaca XML data.

    Baca metode terus secara berurutan telusuri paling detail .xml berkas untilthe Baca metode mencapai akhir berkas. Saat metode Baca mencapai akhir berkas, metode Baca gulung balik false.
    while (reader->Read()){	// Do some work here on the data.	Console::WriteLine(reader->Name);}
  10. Periksa node.

    Untuk memproses XML data, eachrecord memiliki jenis simpul yang dapat ditentukan dari properti NodeType . Nama properti dan nilai properti kembali informasi berikut untuk orfor node saat ini rekaman saat ini:
    • Nama node yang elemen dan nama atribut.
    • Nilai simpul yang merupakan teks simpul.
    Enumerasi NodeType menentukan jenis simpul. Codesample berikut ini menampilkan nama elemen dan jenis kumpulan dokumen. Contoh followingcode mengabaikan elemen atribut:
    while (reader->Read()){	switch (reader->NodeType)	{	case XmlNodeType::Element: // The node is an element.		Console::Write("<{0}", 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("</{0}", reader->Name);		Console::WriteLine(">");		break;	}}
  11. Periksa atribut.

    Elemen node jenis caninclude serangkaian atribut node yang berkaitan dengan nodetypes elemen. Metode MovetoNextAttribute berurutan memindahkan setiap atribut dalam elemen. Gunakan properti HasAttributes untuk menguji apakah node memiliki atribut apa pun. Properti AttributeCount gulung balik jumlah atribut untuk node saat ini.
    while (reader->Read()){	switch (reader->NodeType)	{	case XmlNodeType::Element: // The node is an element.		Console::Write("<{0}", reader->Name);					while (reader->MoveToNextAttribute()) // Read the attributes.			Console::Write(" {0}='{1}'", 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("</{0}", reader->Name);		Console::WriteLine(">");		break;	}}
  12. Simpan solusi. Membangun solusi.
  13. Tekan CTRL + F5 untuk menjalankan aplikasi contoh.
cadangan

Melihat kode lengkap daftar di Visual Studio .NET 2002 atau Visual Studio. NET2003

#include "stdafx.h"#include <tchar.h>#using <mscorlib.dll>#using <System.xml.dll>	using namespace System;using namespace System::Xml;	void _tmain(void){    XmlTextReader* reader = new XmlTextReader ("books.xml");    while (reader->Read())     {        switch (reader->NodeType)         {			case XmlNodeType::Element: // The node is an element.				Console::Write("<{0}", reader->Name);                while (reader->MoveToNextAttribute()) // Read the attributes.					Console::Write(" {0}='{1}'", 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("</{0}", reader->Name);				Console::WriteLine(">");                break;        }    }    Console::ReadLine();}
Catatan Anda harus menambahkan umum bahasa runtime compiler opsi dukungan (/ clr:oldSyntax) di Visual C++ 2005 berhasil menyusun sampel kode sebelumnya. Untuk menambahkan umum bahasa runtime compiler opsi dukungan Visual C++ 2005, ikuti langkah-langkah berikut:
  1. Klik proyek, dan kemudian klik<ProjectName></ProjectName> Properti.

    Catatan<ProjectName></ProjectName> adalah placeholder untuk nama proyek.
  2. Luaskan Konfigurasi Properti, kemudian klik Umum.
  3. Klik untuk memilih Common Language Runtime Support, Old Syntax (/clr:oldSyntax) dalam pengaturan proyekdukungan Common Language Runtime di panel sebelah kanan-atas, klik Terapkan, kemudian klik OK.
Untuk informasi selengkapnya tentang waktu jalan bahasa umum compiler opsi dukungan, kunjungi situs web Microsoft berikut ini:
/CLR (umum bahasa Runtime kompilasi)
http://msdn2.Microsoft.com/en-US/Library/k8d11d4s.aspx
Langkah-langkah ini berlaku untuk semua artikel.

cadangan

Lihat contoh output

Catatan Berkas Books.xml yang disertakan dengan .NET SDK QuickStarts memiliki dua perbedaan dari berkas Books.xml dari tautan unduhan yang disebutkan di bagian "Baca data XML dari berkas".
  • Berkas Books.xml dari tautan unduhan tidak memiliki atributpublicationdate .
  • Berkas Books.xml dari tautan unduhan tidak memiliki atributISBN .
<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>
cadangan

Pemecahan masalah

Ketika Anda menjalankan aplikasi contoh, Anda mungkin menerima pesan galat berikut:

Pengecualian ditangani jenis System.Xml.XmlException terjadi di System.xml.dll
Informasi tambahan: galat sistem.
Anda mungkin menerima pesan galat ini jika Anda menggunakan berkas Books.xml dari tautan unduhan yang disebutkan di bagian "Baca data XML dari berkas". Masalah ini dapat terjadi jika berkas Books.xml memiliki spasi kosong di awal berkas. Untuk mengatasi masalah ini, Buka berkas Books.xml dengan menggunakan editor teks dan kemudian Hapus spasi kosong.

cadangan
Referensi
Untuk informasi tambahan tentang membaca XML dengan XmlReader, kunjungi situs web Microsoft Developer Network (MSDN) berikut:cadangan
Baca vcnet file XML

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 815658 - Tinjauan Terakhir: 10/04/2015 07:26:00 - Revisi: 7.0

Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0, Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition

  • kbdownload kbcode kbxml kbhowtomaster kbmt KB815658 KbMtid
Tanggapan