PHP XML Expat

Penghurai Expat terbina dalam membolehkan anda memproses dokumen XML dalam PHP.

Apakah itu XML?

XML digunakan untuk menerangkan data, dengan tumpuan adalah pada data itu. Fail XML menerangkan struktur data.

Dalam XML, tiada teg pratakrif. Anda mesti menentukan tag anda sendiri.

Untuk mengetahui lebih lanjut tentang XML, lawati tutorial XML kami.


Apakah Expat?

Untuk membaca dan mengemas kini - mencipta dan memproses - dokumen XML, anda memerlukan penghurai XML.

Terdapat dua jenis asas penghurai XML:

· Penghurai berasaskan pokok: Penghurai ini menukar dokumen XML kepada struktur pepohon. Ia menganalisis keseluruhan dokumen dan menyediakan akses kepada elemen dalam pepohon, seperti Model Objek Dokumen (DOM).

· Penghurai berasaskan acara: Anggap dokumen XML sebagai satu siri acara. Apabila peristiwa tertentu berlaku, penghurai memanggil fungsi untuk mengendalikannya.

Penghuraikan Expat ialah penghurai berasaskan peristiwa.

Penghurai berasaskan acara memfokuskan pada kandungan dokumen XML, bukannya strukturnya. Oleh sebab itu, penghurai berasaskan peristiwa dapat mengakses data lebih cepat daripada penghurai berasaskan pepohon.

Sila lihat serpihan XML berikut:

<from>Jani</from>

Penghurai berasaskan peristiwa melaporkan XML di atas sebagai satu siri tiga acara:

· Elemen permulaan: dari

· Bahagian CDATA mula, nilai: Jani

· Elemen penutup: daripada

Contoh XML di atas mengandungi XML yang dibentuk dengan baik. Walau bagaimanapun, tika ini adalah XML tidak sah kerana tiada pengisytiharan jenis dokumen (DTD) dikaitkan dengannya.

Walau bagaimanapun, ini tiada perbezaan apabila menggunakan penghurai Expat. Expat ialah penghurai yang tidak menyemak kesahihan dan mengabaikan sebarang DTD.

Sebagai penghurai XML berasaskan peristiwa dan tidak disahkan, Expat adalah pantas dan ringan, menjadikannya sesuai untuk aplikasi web PHP.

Nota: Dokumen XML mesti dibentuk dengan baik, jika tidak Expat akan menjana ralat.


Pemasangan

Fungsi penghurai XML Expat ialah bahagian penting teras PHP. Tiada pemasangan diperlukan untuk menggunakan fungsi ini.


Fail XML

Fail parser_expat.xml berikut akan digunakan dalam contoh kami:

rreee

Memulakan penghurai XML

Kami akan memulakan penghurai XML dalam PHP, mentakrifkan pengendali untuk acara XML yang berbeza, dan kemudian menghuraikan fail XML ini.

Instance

<?xml version="1.0" encoding="ISO-8859-1"?>
 <note>
     <to>Tove</to>
     <from>Jani</from>
     <heading>Reminder</heading>
     <body>Don't forget me this weekend!</body>
 </note>

Kod di atas akan mengeluarkan:

-- Nota --
Kepada: Tove
Daripada: Jani
Tajuk: Peringatan
Mesej: Jangan lupakan saya hujung minggu ini!

Cara ia berfungsi:

1. Mulakan penghurai XML melalui fungsi xml_parser_create()

2. Cipta fungsi yang sepadan dengan pengendali acara yang berbeza

3 Fungsi manakah yang dilaksanakan apabila penghurai menemui teg permulaan dan penamat

4 Tambahkan fungsi xml_set_character_data_handler() untuk menentukan fungsi yang dilaksanakan apabila penghurai menemui data aksara

5. ) untuk menghuraikan fail "test.xml"

6 Sekiranya terdapat ralat, tambahkan fungsi xml_error_string() untuk menukar ralat XML kepada keterangan teks

7 fungsi xml_parser_free() untuk Melepaskan memori yang diperuntukkan kepada fungsi xml_parser_create()


Maklumat lanjut tentang PHP Expat parser

Untuk mengetahui lebih lanjut tentang fungsi PHP Expat, sila lawati Manual Rujukan Penghurai PHP XML kami.


Meneruskan pembelajaran
||
<?php //Initialize the XML parser $parser=xml_parser_create(); //Function to use at the start of an element function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br>"; break; case "TO": echo "To: "; break; case "FROM": echo "From: "; break; case "HEADING": echo "Heading: "; break; case "BODY": echo "Message: "; } } //Function to use at the end of an element function stop($parser,$element_name) { echo "<br>"; } //Function to use when finding character data function char($parser,$data) { echo $data; } //Specify element handler xml_set_element_handler($parser,"start","stop"); //Specify data handler xml_set_character_data_handler($parser,"char"); //Open XML file $fp=fopen("parser_expat.xml","r"); //Read data while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } //Free the XML parser xml_parser_free($parser); ?>
  • Cadangan kursus
  • Muat turun perisian kursus