PHP XML Expat parser
PHP XML Expat tahlilchisi
XML Expat Parser voqeaga asoslangan tahlilchi bo‘lib, u XML hujjatini bir qator voqealar sifatida ko‘rib chiqadi. Voqea sodir bo‘lganda, uni boshqarish uchun belgilangan funksiyani chaqiradi.
XML Expat Parser, shuningdek, tasdiqlanmaydigan tahlil qiluvchi hisoblanadi va hujjatga bog‘langan har qanday DTDlarni e’tiborsiz qoldiradi. Biroq, agar hujjat yaxshi shakllanmagan bo‘lsa, u xato xabari bilan tugaydi.
Bu hodisaga asoslangan, tasdiqlanmaydigan tahlilchi bo‘lgani uchun XML Expat Parser tez va veb-ilovalar uchun juda mos keladi.
Quyidagi XML fraktsiyasiga qarang:
<from>Jani</from>
Hodisaga asoslangan tahlilchi yuqoridagi XML ni 3 ta hodisa qatori sifatida hisobot qiladi:
- Boshlash elementi: dan
- CDATA bo‘limi: Jani
- Yakuniy element: dan
PHP XML Expat Parser - Asosiy funksiyalari
XML Expat Parser ning asosiy funksiyalari quyidagilardan iborat:
xml_parser_create()- XML tahlilchisini ishga tushiradixml_set_element_handler()- teglarni ochish va yopishda qaysi funksiya bajarilishini belgilaydixml_set_character_data_handler()Belgilar ma’lumotlarida qaysi funksiya bajarilishini belgilaydixml_parse()- Tahlil jarayonini boshlaydixml_error_string()- XML xatosini matn tavsifiga o‘zgartiradixml_parser_free()- ajratilgan xotirani chiqaradi
XML Expat tahlilchisidan foydalanish
Quyidagi misolda "note.xml" XML faylidan foydalaniladi.
Quyidagi misolda biz ba’zi ishlov beruvchi funksiyalarini aniqlaymiz, XML faylini ochamiz, XML Expat Parserni ishga tushiramiz va keyin XML faylini tahlil qilamiz:
Misol
<?php
// Define handler functions
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 stop($parser, $element_name) {
echo "<br>";
}
function char($parser, $data) {
echo $data;
}
// Open XML file for reading
$stream = fopen("note.xml", "r");
// Initialize the XML parser
$parser = xml_parser_create();
// Set the handlers
xml_set_element_handler($parser, "start", "stop");
xml_set_character_data_handler($parser, "char");
// Read data
while ($data = fread($stream, 4096)) {
xml_parse($parser, $data, feof($stream)) 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 resource
xml_parser_free($parser);
// Close XML file
fclose($stream);
?>
Misolni ishga tushirish »
Yuqoridagi kodning natijasi quyidagicha bo‘ladi:
-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!
Kod tushuntirish
- Ishlovchi funksiyalarini yarating (start(), stop() va char())
fopen()funksiyasi bilan o‘qish uchun XML faylini oching- XML parserni
xml_parser_create()funksiyasi bilan ishga tushiring - Ishlovchilarni o‘rnating:
xml_set_element_handler()teglarni ochish va yopishda qaysi funksiyani bajarish kerakligini vaxml_set_character_data_handler()belgilar ma’lumotlarida qaysi funksiyani bajarish kerakligini belgilaydi. - XML faylni
xml_parse()funksiyasi bilan tahlil qiling - Xato bo‘lsa, XML xatosini matn tavsifiga aylantirish uchun
xml_error_string()funksiyasini qo‘shing. - XML parser resursini
xml_parser_free()funksiyasi bilan bo‘shating - XML faylni
fclose()funksiyasi bilan yoping
PHP XML Expat Parser ma’lumotnomasi
PHP XML Expat Parser funksiyalari haqida to‘liq ma’lumot olish uchun PHP XML Expat Parser Reference sahifamizga tashrif buyuring.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
