در زمان تجزیه و تحلیل شدن محتوای یک فایل xml  توسط پارسر  ، تابع 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 تابع xml_set_element_handler می نویسیم باید دو پارامتر داشته باشد
  •  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);
?>

 
 خروجی دستورات بالا بصورت زیر خواهد بود :

 

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!