PHP XML Expat parser
Built-in PHP Expat parser memungkinkan untuk memproses dokumen XML.
Apa XML?
XML digunakan untuk menggambarkan data dan fokus pada data apa Ya. file XML menggambarkan struktur data.
Dalam XML, tidak ada tag yang telah ditetapkan. Anda harus mendefinisikan tag Anda sendiri.
Untuk mempelajari lebih lanjut tentang XML, kunjungi tutorial XML .
Apa Expat ya?
Untuk membaca dan update - membuat dan proses - dokumen XML, Anda perlu parser XML.
Ada dua tipe dasar dari parser XML:
- parser berbasis pohon: parser ini mengubah dokumen XML ke dalam struktur pohon. Ini menganalisis seluruh dokumen, dan menyediakan akses ke elemen di pohon, seperti Document Object Model (DOM).
- berdasarkan aktivitas parser: Dokumen XML sebagai rangkaian acara. Ketika peristiwa tertentu terjadi, parser akan memanggil fungsi untuk memproses.
parser Expat adalah berdasarkan aktivitas parser.
berdasarkan aktivitas parser fokus pada isi dokumen XML, bukan struktur mereka. Karena itu, acara berbasis parser dapat mengakses data lebih cepat dari parser berbasis pohon-.
Pertimbangkan XML fragmen berikut:
parser berdasarkan aktivitas melaporkan XML di atas sebagai rangkaian tiga peristiwa:
- Mulai elemen: dari
- Mulai bagian CDATA, nilai: Jani
- Tutup elemen: dari
XML contoh di atas mengandung well-formed XML. Tapi contoh ini tidak XML yang valid, karena jenis dokumen deklarasi (DTD) tidak terkait dengan itu.
Namun, bila menggunakan parser Expat, ini tidak membuat perbedaan. parser expat tidak diperiksa untuk validitas, mengabaikan DTD apapun.
Sebagai, non-memvalidasi parser XML berbasis event, Expat cepat dan ringan, sangat cocok untuk aplikasi Web PHP.
Catatan: Dokumen XMLharus well-formed, jika Expat akan menghasilkan kesalahan.
memasang
fungsi parser XML Expat merupakan bagian dari inti PHP. Tidak perlu instalasi untuk menggunakan fungsi tersebut.
file XML
File XML di bawah ini akan digunakan dalam contoh kita:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Menginisialisasi parser XML
Kami ingin menginisialisasi parser XML di PHP, menentukan prosesor untuk acara XML yang berbeda, dan kemudian mem-parsing file XML.
contoh
//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);
?>
Kode di atas akan menampilkan:
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!
Cara kerjanya:
- Dengan xml_parser_create () fungsi menginisialisasi parser XML
- Buat dengan fungsi event handler yang berbeda
- Tambahkan xml_set_element_handler () berfungsi untuk menentukan, yang berfungsi untuk melakukan ketika parser pertemuan awal dan akhir tag
- Tambahkan xml_set_character_data_handler () berfungsi untuk menentukan, yang berfungsi untuk melakukan ketika parser pertemuan data karakter
- Dengan xml_parse () berfungsi untuk mengurai file "test.xml"
- Dalam hal ada kesalahan, kemudian menambahkan xml_error_string () fungsi untuk mengkonversi deskripsi XML kesalahan teks
- Sebut xml_parser_free () fungsi untuk melepaskan ditugaskan untuk xml_parser_create () fungsi memori
Informasi lebih lanjut PHP Expat parser
Untuk informasi lebih lanjut tentang fungsi PHP Expat, kunjungi Pedoman Parser Referensi PHP XML .