محلل PHP XML Expat
يتيح محلل XML Expat Parser المدمج إمكانية معالجة مستندات XML في PHP.
محلل XML للمغتربين
محلل Expat هو محلل قائم على الحدث.
انظر إلى جزء XML التالي:
<from>Jani</from>
يقوم المحلل اللغوي المستند إلى الحدث بالإبلاغ عن XML أعلاه كسلسلة من ثلاثة أحداث:
- عنصر البداية: from
- ابدأ قسم CDATA ، القيمة: Jani
- إغلاق العنصر: من
تعد وظائف XML Expat Parser جزءًا من نواة PHP. ليست هناك حاجة إلى تثبيت لاستخدام هذه الوظائف.
ملف XML
سيتم استخدام ملف XML "note.xml" في المثال أدناه:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
تهيئة محلل XML Expat
نريد تهيئة محلل XML Expat Parser في PHP ، وتحديد بعض المعالجات لأحداث XML المختلفة ، ثم تحليل ملف XML.
مثال
<?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("note.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);
?>
شرح المثال:
- تهيئة محلل XML باستخدام
xml_parser_create()
الوظيفة - إنشاء وظائف لاستخدامها مع معالجات الأحداث المختلفة
- أضف
xml_set_element_handler()
الوظيفة لتحديد الوظيفة التي سيتم تنفيذها عندما يواجه المحلل اللغوي علامتي الفتح والإغلاق - أضف
xml_set_character_data_handler()
الوظيفة لتحديد الوظيفة التي سيتم تنفيذها عندما يواجه المحلل بيانات شخصية - تحليل ملف "note.xml" مع
xml_parse()
الوظيفة - في حالة حدوث خطأ ، أضف
xml_error_string()
وظيفة لتحويل خطأ XML إلى وصف نصي - اتصل
xml_parser_free()
بالوظيفة لتحرير الذاكرة المخصصةxml_parser_create()
للوظيفة
المزيد من محلل PHP XML Expat
لمزيد من المعلومات حول وظائف PHP Expat ، تفضل بزيارة مرجع محلل PHP XML الخاص بنا .