مشاهده منبع مطلب این صفحه به زبان اصلی
 
این تابع مشخص می کند که در صورتیکه پارسر از درون فایل xml ، یک کاراکتر اطلاعاتی را پیدا کرد کدام تابع فراخوانی شود
در صورتیکه تابع xml_set_character_data_handler ، کار خود را به درستی انجام دهد مقدار true و در غیر این صورت false را بر می گرداند 
 روش استفاده :

 

xml_set_character_data_handler(parser,handler)
 
 اشنایی با پارامترها :
  • parser 
مشخص کردن مقدار این پارامتر اجباری است .  نام پارسر xml است که قبلا با استفاده از تابع xml_parser_create ساخته شده است
  •  handler
مشخص کردن مقدار این پارامتر اجباری است .  نام تابعی است که در صورت پیدا شدن یک کاراکتر داده ای باید فراوانی شود
 
 تابعی که به جای پارامتر handler  نوشته می شود باید دو پارامتر داشته باشد :
  •  parser
مشخص کردن مقدار این پارامتر اجباری است .   نام پارسر xml است که قبلا با استفاده از تابع xml_parser_create ساخته شده است
  •  data
 مشخص کردن مقدار این پارامتر اجباری است . نام متغیری است که در ان کاراکتر داده ای پیدا شده از فایل xml قرار دارد
 
 نکته :
همچنین  پارامتر handler  می تواند شامل ارایه ای از اشیای ارجاع به شی یا نام متد باشد
 
 مثال :
 فرض کنید فایل 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>

 
 فرض کنید دستورات فایل php بصورت زیر موجود است :

 

<?php
$parser=xml_parser_create();

function char($parser,$data)
  {
  echo $data;
  }

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

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

 

Tove Jani Reminder Don't forget me this weekend!