Pemrosesan Analisis XML Expat PHP
Pilihan kuliah
Rekomendasi kuliah:
Pemecah Expat yang disertakan memungkinkan untuk mengelola dokumen XML di PHP.
APA ITU XML?
di XML, tidak ada tag yang ditetapkan sebelumnya. Anda harus menentukan tag sendiri. Pelajaran XMLJika ingin belajar lebih banyak tentang XML, kunjungi
.
Apa itu Expat?
Untuk membaca dan memperbarui - membuat dan menangani dokumen XML, Anda memerlukan pemecah XML.
- Ada dua jenis pemecah XML dasar:: Jenis pemecah ini mengkonversi dokumen XML ke struktur pohon. Dia menganalisis dokumen secara keseluruhan dan menyediakan API untuk mengakses elemen-elemen di pohon, seperti Dokumentasi Objet Model (DOM).
- Pemecah berdasarkan pohon: Memperlihatkan dokumen XML sebagai serangkaian peristiwa. Saat peristiwa khusus terjadi, pemecah akan memanggil fungsi untuk menangani hal itu.
Pemecah berdasarkan peristiwa
Pemecah berdasarkan peristiwa fokus pada konten dokumen XML, bukan hasilnya. Karena itu, pemecah berdasarkan peristiwa dapat mengakses data lebih cepat daripada pemecah berdasarkan pohon.
Lihat bagian XML di bawah ini:
<from>John</from>
Pemecah berdasarkan peristiwa melaporkan XML di atas sebagai serangkaian tiga peristiwa:
- Mulai elemen: from
- Mulai bagian CDATA, nilai: John
- Tutup elemen: from
Contoh XML di atas mengandung XML yang dalam bentuk yang baik. Tetapi contoh ini adalah XML yang tidak berlaku, karena tidak memiliki deklarasi tipe dokumen (DTD) yang berhubungan, atau DTD yang disisipkan.
Meskipun demikian, tidak ada perbedaan saat menggunakan pemecah Expat. Expat adalah pemecah yang tidak memeriksa keberlanjutan, membuang semua DTD.
Sebagai pemecah XML yang berdasarkan peristiwa dan tanpa verifikasi, Expat cepat dan ringan, sangat cocok untuk aplikasi web PHP.
Keterangan:Dokumen XML harus dalam bentuk yang baik, atau Expat akan menghasilkan kesalahan.
Pemasangan
Pemecah Expat XML adalah bagian penting dari PHP tanpa perlu pemasangan, dapat digunakan langsung dengan fungsi-fungsi ini.
Berkas XML
Dalam contoh kami, kami akan menggunakan berkas XML berikut:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
Inisialisasi parser XML
Kami ingin menginisialisasi parser XML di PHP, mendefinisikan penanganan acara XML yang berbeda, dan kemudian mengurai berkas XML ini.
Contoh
<?php //Inisialisasi parser XML $parser=xml_parser_create(); //Fungsi untuk digunakan di awal elemen function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Catatan --<br />"; break; case "TO": echo "Kepada: "; break; case "FROM": echo "Dari: "; break; case "HEADING": echo "Judul: "; break; case "BODY": echo "Pesan: "; } } //Fungsi untuk digunakan di akhir elemen function stop($parser,$element_name) { echo "<br />"; } //Fungsi untuk digunakan saat menemukan data karakter function char($parser,$data) { echo $data; } //Tentukan penanganan elemen xml_set_element_handler($parser,"start","stop"); //Tentukan penanganan data xml_set_character_data_handler($parser,"char"); //Buka berkas XML $fp=fopen("test.xml","r"); //Baca data while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("Error XML: %s di baris %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } //Lepas parser XML xml_parser_free($parser); ?>
Keluaran kode di atas:
-- Catatan -- Kepada: George Dari: John Judul: Pengingat Pesan: Jangan lupa pertemuan!
Penjelasan prinsip kerja:
- Menginisialisasi parser XML melalui fungsi xml_parser_create()
- Buat fungsi yang disesuaikan dengan program penanganan peristiwa yang berbeda
- Tambahkan fungsi xml_set_element_handler() untuk menentukan fungsi mana yang akan dieksekusi saat parser menemukan tag awal dan akhir
- Tambahkan fungsi xml_set_character_data_handler() untuk menentukan fungsi mana yang akan dieksekusi saat parser menemukan data karakter
- Mengurai berkas "test.xml" melalui fungsi xml_parse()
- Jika terjadi kesalahan, tambahkan fungsi xml_error_string() untuk mengkonversi kesalahan XML ke penjelasan teks
- Panggil fungsi xml_parser_free() untuk melepaskan memori yang dialokasikan untuk fungsi xml_parser_create()
Lebih banyak informasi tentang parser PHP Expat
Untuk mendapatkan informasi lebih lanjut tentang fungsi PHP Expat, silakan kunjungi panduan referensi Parser XML PHP kami.