Penghurai PHP XML Expat

Penghuraikan Expat XML PHP

Penghuraikan Expat terbina dalam membolehkan untuk memproses dokumen XML dalam PHP.

Apakah itu XML?

XML ialah Bahasa Penanda Boleh Ekstensi. Tag merujuk kepada simbol maklumat yang boleh difahami oleh komputer Melalui tag tersebut, komputer boleh memproses artikel yang mengandungi pelbagai maklumat. Bagaimana untuk mentakrifkan teg ini, anda boleh memilih bahasa penanda yang diterima di peringkat antarabangsa, seperti HTML, atau anda boleh menggunakan bahasa penanda seperti XML yang diputuskan secara bebas oleh orang yang berkaitan Ini ialah kebolehlanjutan bahasa. XML dipermudahkan dan diubah suai daripada SGML. Ia terutamanya menggunakan XML, XSL dan XPath, dsb.

Perenggan di atas ialah definisi asas XML, penjelasan yang diterima secara meluas. Ringkasnya, XML ialah bahasa perihalan data Walaupun ia adalah bahasa, ia biasanya tidak mempunyai fungsi asas bahasa biasa - untuk dikenali dan dijalankan oleh komputer. Anda hanya boleh bergantung pada bahasa lain untuk mentafsirkannya supaya ia mencapai kesan yang anda inginkan atau diterima oleh komputer.

Jika anda baru mengenali XML, anda mungkin tidak memahami apa itu XML mengikut definisi. Mungkin anda boleh menukar perspektif anda untuk memahami apa itu XML dari sisi aplikasi, dan memahaminya daripada apa yang XML boleh lakukan. Ini sepatutnya lebih membantu anda daripada definisi yang lebih kosong.

Permukaan aplikasi XML terbahagi terutamanya kepada dua jenis, jenis dokumen dan jenis data. Berikut ialah beberapa aplikasi XML biasa:

1. XML+XSLT=>HTML, salah satu aplikasi dokumen yang paling biasa. XML menyimpan data XML keseluruhan dokumen, dan kemudian XSLT menukar dan menghuraikan XML, menggabungkannya dengan tag HTML dalam XSLT, dan akhirnya menjadi HTML, yang dipaparkan pada penyemak imbas. Contoh biasa ialah siaran di CSDN.

2. XML ialah pangkalan data mikro, yang merupakan salah satu aplikasi berasaskan data yang paling biasa. Kami menggunakan API XML yang berkaitan (MSXML DOM, JAVA DOM, dll.) untuk mengakses dan membuat pertanyaan XML. Dalam pelaksanaan papan mesej, anda sering dapat melihat penggunaan XML sebagai pangkalan data.

3. Sebagai data komunikasi. Yang paling tipikal ialah WEB SERVICE, yang menggunakan XML untuk memindahkan data.

4. Sebagai data maklumat konfigurasi untuk beberapa aplikasi. Yang biasa ialah web.XML digunakan apabila J2EE mengkonfigurasi pelayan WEB.

5. Format XML beberapa dokumen lain. Seperti WORD, EXCEL, dll.

6. Simpan hubungan pemetaan antara data. Seperti Hibernate.

6 aplikasi yang diperkenalkan di sini pada asasnya meliputi kegunaan utama XML. Ringkasnya, XML ialah bahasa abstrak yang tidak konkrit seperti bahasa pengaturcaraan tradisional. Untuk memahaminya secara mendalam, anda harus bermula dengan aplikasinya, pilih penggunaan yang anda perlukan, dan kemudian belajar cara menggunakannya.

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.

Apa itu Expat?

Expat ialah penghurai berorientasikan aliran. Anda mendaftarkan fungsi panggil balik parser (atau pengendali) dan kemudian mula mencari dokumentasinya. Apabila penghurai mengenali lokasi fail yang ditentukan, ia memanggil pengendali yang sepadan untuk bahagian itu (jika anda telah mendaftarkannya). Fail disalurkan ke parser, di mana ia dipecahkan kepada berbilang serpihan dan dimuatkan ke dalam memori. Jadi ekspatriat boleh menghuraikan fail besar itu.

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

Lihat serpihan XML berikut:

<from>Jani</from>

Penghuraikan berasaskan peristiwa melaporkan XML di atas sebagai satu siri tiga peristiwa :

· Elemen permulaan: dari

· Memulakan bahagian CDATA, nilai: Jani

· Elemen penutup: daripada

Contoh XML di atas mengandungi bentuk Baik XML. 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 XML berikut akan digunakan dalam contoh kami:

<?xml version="1.0" encoding=" ISO -8859-1"?>
<nota>
<ke>Tove</to>
<dari>Jani</dari>
<tajuk>/Peringatan<tajuk>/Peringatan ;
<body>Jangan lupakan saya hujung minggu ini!</body>
</note>

Initialize XML parser

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

Instance

<?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("test.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);
 ?>

Kod di atas akan mengeluarkan:

-- Nota --
Kepada: Tove
Daripada: Jani
Tajuk: Peringatan
Mesej: Jangan lupa 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 Apabila peranti menemui label mula dan tamat, fungsi yang melaksanakan

4. Tambah fungsi xml_set_character_data_handler () untuk ditakrifkan, yang berfungsi apabila penghurai menemui data aksara

5. Melalui xml_parse () ( ) untuk menghuraikan fail "test.xml"

6 Sekiranya berlaku ralat, tambahkan fungsi xml_error_string() untuk menukar ralat XML kepada penerangan teks

7 fungsi xml_parser_free() untuk membebaskannya Memori yang diperuntukkan kepada fungsi xml_parser_create()

Maklumat lanjut tentang PHP Expat parser

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


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("test.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); ?>
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!