XML_SESSSED_ENDOMPARD_DECL_Handler function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool xml_set_end_namespace_decl_handler(resource $parser, callable $handler);
$ Parser : ဤသည် XML_Parser_create function မှတဆင့်ဖန်တီးထားသော XML parser အရင်းအမြစ်ဖြစ်သည်။
$ handler : namespace စွန်းသောအခါ callback function ကိုဖြစ်ပေါ်စေသည်။ ဒီ function က parameters တွေကို parameters နှစ်ခု: $ parser နှင့် namespace ၏ ရှေ့ဆက် ။
ရိုးရှင်းသောဥပမာ -
<?php
// ဖန်တီးXMLမိစ်ဆာ
$parser = xml_parser_create();
// namespace ၏အဆုံးမှာ callback function ကိုသတ်မှတ်ပါ
function end_namespace_handler($parser, $prefix) {
echo "Namespace '$prefix' has ended.\n";
}
// callback function ကိုသတ်မှတ်ပါ
xml_set_end_namespace_decl_handler($parser, 'end_namespace_handler');
// နမူနာXMLအချက်များ
$xml = '<root xmlns:foo="http://example.com"><foo:bar></foo:bar></root>';
// သုံးသပ်ကြည့်ရှုခြင်းXML
xml_parse($parser, $xml);
// 释放မိစ်ဆာ
xml_parser_free($parser);
?>
အထက်ပါကုဒ်သည် output ကိုဖြစ်လိမ့်မည်။
Namespace 'foo' has ended.
XML_SESS_END_ENDER_DECLLERSACL_Handler callback function ကိုမှန်ကန်စွာကွပ်မျက်ခံရဖို့သေချာစေရန်အလားအလာပြ problems နာများကိုဖြေရှင်းရန်ကျွန်ုပ်တို့သည် debugging နည်းစနစ်များကိုသုံးနိုင်သည်။
ပထမ ဦး စွာ xml_parser_create ကို သေချာအောင်လုပ်ပါ။ Parser ကိုမဖန်တီးမီကျွန်ုပ်တို့သည်၎င်း၏ပြန်လာတန်ဖိုးကို ဦး စွာစစ်ဆေးနိုင်ပြီး၎င်းသည်မ မှားကြောင်း သေချာစေနိုင်သည်။
<?php
$parser = xml_parser_create();
if (!$parser) {
echo "Failed to create XML parser.\n";
exit;
}
?>
callback function တွင်ကျွန်ုပ်တို့သည် Var_Dump သို့မဟုတ် ECHO ကို အသုံးပြု . အခြား debugging သတင်းအချက်အလက်များကိုသုံးနိုင်သည်။ ၎င်းသည် callback function ကိုမှန်ကန်စွာဟုခေါ်သည်ကိုအတည်ပြုရန်ကူညီနိုင်သည်။
function end_namespace_handler($parser, $prefix) {
echo "Namespace '$prefix' has ended.\n";
var_dump($prefix);
}
XML စာရွက်စာတမ်းများကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါ, သင်သည် syntax အမှားများကိုသင်ကြုံတွေ့ရနိုင်သည်သို့မဟုတ် XML ဒေတာများကိုမှားယွင်းစွာကြုံတွေ့ရနိုင်သည်။ Debugging ကိုလွယ်ကူချောမွေ့စေရန်အတွက်အသေးစိတ်အမှားအချက်အလက်များရရှိရန် XML_GEget_error_code ကို သုံး. အမှားကိုင်တွယ်သည့်ယန္တရားတစ်ခုကိုထည့်သွင်းနိုင်သည်။
<?php
// ဖန်တီးမိစ်ဆာ
$parser = xml_parser_create();
// အမှားကိုင်တွယ်
function handle_error($parser) {
$error_code = xml_get_error_code($parser);
echo "Error: " . xml_error_string($error_code) . "\n";
exit;
}
// namespace အဆုံးပြန်ခေါ်ပါ
xml_set_end_namespace_decl_handler($parser, 'end_namespace_handler');
// နမူနာ无效XML
$xml = '<root xmlns:foo="http://example.com"><foo:bar></foo:bar>';
// သုံးသပ်ကြည့်ရှုခြင်းXMLနှင့်အမှားများကိုစစ်ဆေးပါ
if (!xml_parse($parser, $xml)) {
handle_error($parser);
}
// 释放မိစ်ဆာ
xml_parser_free($parser);
?>
XML အချက်အလက်များကို Namespace များပါ 0 င်သည့်အတွက် $ ရှေ့ဆက်သည် namespace မရှိသောဒြပ်စင်များကိုကိုယ်စားပြုသည့်အချည်းနှီးသော string တစ်ခုဖြစ်နိုင်သည်။ မလိုအပ်သောအမှားအယွင်းများကိုရှောင်ရှားရန်ဒီ callback function ကိုကိုင်တွယ်ရန်သေချာပါစေ။
function end_namespace_handler($parser, $prefix) {
if (empty($prefix)) {
echo "No namespace prefix declared.\n";
} else {
echo "Namespace '$prefix' has ended.\n";
}
}
XML_set_Ennamespace_Decl_Handler ကို အသုံးပြုတဲ့အခါ callback function ဟာတရားဝင်ခေါ်ဆိုမှုတစ်ခုဖြစ်ရမယ်။ callback function ကို is_calable ကို အသုံးပြုခြင်းအားဖြင့်မှန်ကန်မှုရှိမရှိစစ်ဆေးနိုင်ပါသည်။
<?php
$parser = xml_parser_create();
$handler = 'end_namespace_handler';
if (!is_callable($handler)) {
echo "Handler function '$handler' is not callable.\n";
exit;
}
xml_set_end_namespace_decl_handler($parser, $handler);
// သုံးသပ်ကြည့်ရှုခြင်းXML
$xml = '<root xmlns:foo="http://example.com"><foo:bar></foo:bar></root>';
xml_parse($parser, $xml);
xml_parser_free($parser);
?>