• 0

كيف يمكن إنشاء مفسّر "XML" و تعريف أحداث ضمنه؟

كيف يمكن إنشاء مفسّر "XML" و تعريف أحداث ضمنه؟ وهل من شيفرة برمجية كمثال عن إنشاء المفسّر؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يمكنك إنشاء مفسّر "XML" بإستخدام التعليمة "xml_parser_create"  حيث يتم إنشاء وظائف لإستخدامها مع معالجات الأحداث فيمكنك إستخدام إضافة "xml_set_element_handler" لتحديد الوظائف التي ستظهر عندما يصل المفسّر لتنفيذ بداية و نهاية وسم محدّد و يمكنك إستخدام الإضافة "xml_set_character_data_handler" لتحديد الوظائف التي ستظهر عندما يكون المفسّر بحالة معالجة للبيانات.

فيما يلي شيفرة لإنشاء مفسّر للملف التجريبي "test.xml" و تنفيذ الوظيفة xml_parse عليه:

<?php
$parser=xml_parser_create();
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;
}
xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");
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)));
}
xml_parser_free($parser);
?>

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن