Manual belajar ...login
Manual belajar kendiri lengkap PHP
pengarang:php.cn  masa kemas kini:2022-04-15 13:53:54

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.

Tutorial video yang disyorkan: "tutorial xml" http://www.php.cn/course/list/60.html


Apakah itu 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: Memperlakukan 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:

penghurai berasaskan acara
<from>Jani</from>
melaporkan XML di atas sebagai urutan tiga acara:
  • Elemen mula: dari

  • Mulakan bahagian CDATA, nilai: Jani

  • Elemen tutup: dari

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 XML berikut akan digunakan dalam contoh kami:

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

Mulakan penghurai XML

Kita perlu memulakan penghurai XML dalam PHP, mentakrifkan pengendali untuk acara XML yang berbeza dan kemudian menghuraikan fail XML.

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:
prinsip kerja
-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!
:
  1. Mulakan penghurai XML melalui fungsi xml_parser_create()

  2. Buat fungsi yang sepadan dengan pengendali acara yang berbeza

  3. Tambah fungsi xml_set_element_handler() untuk mentakrifkan fungsi yang dilaksanakan apabila penghurai menemui teg permulaan dan penamat

  4. Tambah fungsi xml_set_character_data_handler() untuk menentukan apabila penghurai menemui data aksara Fungsi yang hendak dilaksanakan

  5. Uraikan fail "test.xml" melalui fungsi xml_parse()

  6. Sekiranya terdapat ralat, tambahkan xml_error_string() Fungsi menukar ralat XML kepada penerangan teks

  7. Panggil fungsi xml_parser_free() untuk melepaskan memori yang diperuntukkan kepada fungsi xml_parser_create()


Maklumat lanjut tentang penghurai PHP Expat

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

Laman web PHP Cina