دالة PHP xml_set_element_handler()

التعريف والاستخدام

تقوم دالة xml_set_element_handler() بإنشاء معالجي العنصر البدء والانتهاء.

إذا تم إنشاء المعالج بنجاح، فإن هذه الدالة ستعود true؛ وإلا ستعود false.

النحو

xml_set_element_handler(parser,start,end)
المعامل وصف
parser مطلوب. تحديد معالج XML الذي سيتم استخدامه.
start مطلوب. تحديد الدالة التي يتم استدعاؤها عند بدء العنصر.
end مطلوب. تحديد الدالة التي يتم استدعاؤها عند انتهاء العنصر.

بالمعنى start المعامل المحدد يجب أن يكون له ثلاثة معاملات:

المعامل وصف
parser مطلوب. تحديد متغير يحتوي على معالج تحليل XML.
name مطلوب. تحديد متغير يحتوي على اسم العنصر، هذا العنصر يطلق هذه الدالة.
data مطلوب. تحديد مصفوفة تحتوي على خصائص العنصر.

بالمعنى end المعامل المحدد يجب أن يكون له ثلاثة معاملات:

المعامل وصف
parser مطلوب. تحديد متغير يحتوي على معالج تحليل XML.
name مطلوب. تحديد متغير يحتوي على اسم العنصر، هذا العنصر يطلق هذه الدالة.

شرح

start و end يمكن أن يكون المعامل أيضًا مصفوفة تحتوي على استدلالات الفئات واسم الدالة.

مثال

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

Output:

-- Note --
To: George
From: John
Heading: Reminder
Message: Don't forget the meeting!