PHP တွင် XML_set_Ennamnonface_Decl_Handler function သည် XML ခွဲခြမ်းစိတ်ဖြာသည့်အခါ namespace ကြေငြာချက်၏အဆုံးကိုကိုင်တွယ်သော callback function ဖြစ်သည်။ XML ခွဲခြမ်းစိတ်ဖြာခြင်းတွင်အထူးသဖြင့် XML စာရွက်စာတမ်းများကို namespace များဖြင့်ခွဲထုတ်သည့်အခါ,
XML_set_Ennamespace_Decl_Handler function ကို xml ခွဲခြမ်းစိတ်ဖြာသည့်အခါ Namespace ကြေငြာချက်၏အဆုံးတွင်ဟုခေါ်သော callback function ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ဤ callback function ကို namespace အပြောင်းအလဲများကိုမှတ်တမ်းတင်ရန်သို့မဟုတ် namespace ပေါ်တွင်လိုအပ်သောပြုပြင်ခြင်းပြုလုပ်ရန်အသုံးပြုနိုင်သည်။
bool xml_set_end_namespace_decl_handler ( resource $parser , callable $handler )
$ Parser : XML parser အရင်းအမြစ်ကို XML_Parser_Create မှတဆင့်ဖန်တီးထားသည်။
$ handler - parser သည် Namester ကြေငြာချက်၏အဆုံးကိုတွေ့သောအခါ callback function ကိုခေါ်သည်။
ကျွန်ုပ်တို့တွင် XML ဖိုင်တွင် XML ဖိုင်ပါ 0 င်သည့် xml ဖိုင်တစ်ခုရှိသည်ဆိုပါစို့။
XML_SET_END_ENNERNAMS_DECLECLLER ကို အသုံးပြု. XML ကိုမည်သို့ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့် namespace ၏အဆုံးတွင်၎င်း၏ရှေ့ဆက်ကိုပြုပြင်ရန် XML ကိုမည်သို့ခွဲခြမ်းစိတ်ဖြာနည်းပြသသည့်ရိုးရှင်းသောအမှုတစ်ခုဖြစ်သည်။
<?php
// ဖန်တီး XML မိစ်ဆာ
$parser = xml_parser_create();
// namespace ကြေငြာချက်နှင့်အဆုံးသတ်သော callback function ကိုသတ်မှတ်ပါ
function endNamespaceDecl($parser, $prefix, $uri) {
echo "Namespace ended: Prefix = '$prefix', URI = '$uri'\n";
// ဤတွင်ကျွန်ုပ်တို့သည် namespace ကိုပြုပြင်နိုင်သည်,ဥပမာအားဖြင့်တစ် ဦး ကိုအစားထိုးလိုက်ပါ URI သို့မဟုတ်ရှေ့ဆက်ကိုပြောင်းလဲပါ
if ($uri == "http://www.example.com/oldnamespace") {
echo "Changing namespace URI\n";
$uri = "http://www.gitbox.net/newnamespace"; // အသစ်နှင့်အစားထိုးလိုက်ပါ URI
}
}
// namespace ကြေငြာချက်၏အဆုံးမှာ callback function ကိုသတ်မှတ်ပါ
xml_set_end_namespace_decl_handler($parser, "endNamespaceDecl");
// XML ဒေတာဥပမာ
$xmlData = <<<XML
<root xmlns:old="http://www.example.com/oldnamespace">
<old:item>Item 1</old:item>
</root>
XML;
// သုံးသပ်ကြည့်ရှုခြင်း XML အချက်များ
if (!xml_parse($parser, $xmlData, true)) {
echo "XML Parsing error: " . xml_error_string(xml_get_error_code($parser)) . "\n";
exit;
}
// 释放မိစ်ဆာ
xml_parser_free($parser);
?>
XML Parser ကိုဖန်တီးပါ ။ XML parser အရင်းအမြစ်တစ်ခုကိုဖန်တီးရန် XML_Parser_Create ကို ပထမဆုံးအသုံးပြုပါ။
Callback function ကိုသတ်မှတ်ခြင်း - ကျွန်ုပ်တို့သည် parser ၏ကြေငြာချက်၏အဆုံးကိုတွေ့ရမည့် Entnamespareecl ဟုခေါ်သော functionecl ဟုခေါ်သော function ကိုသတ်မှတ်သည်။ ၎င်းသည်လက်ရှိအဆုံးသတ်ထားသော namespace ၏ရှေ့ဆက်နှင့် URI ကိုထုတ်ပေးသည်။
Modifess Namespace - ကျွန်ုပ်တို့သည်သတ်မှတ်ထားသော namespace ဟောင်းကိုကျွန်ုပ်တို့သတ်မှတ်ထားသောအဟောင်းကိုကြုံတွေ့ရပါက ( http://www.exampe.com/dodampteface ) ကို ကျွန်ုပ်တို့ကြုံတွေ့ရပါက,
Parse XML - ကျွန်ုပ်တို့သည် XML အချက်အလက်များကို namespace တစ်ခုဖြင့် ပေး. ဒေတာများကို XML_Parse function မှတဆင့်ခွဲခြမ်းစိတ်ဖြာပါ။
Parser : Parsing ပြီးစီးပြီးနောက် parser အရင်းအမြစ်များကိုလွှတ်ပေးရန်သတိရပါ။
အထက်ပါကုဒ်ကိုကျွန်ုပ်တို့ဖွင့်သောအခါ output သည်ပြလိမ့်မည်။
Namespace ended: Prefix = 'old', URI = 'http://www.example.com/oldnamespace'
Changing namespace URI
ဤအချက်ကကျွန်ုပ်တို့၏ callback function ကို namespace ကြေငြာချက်၏အဆုံးတွင်ပစ်ခတ်ပြီး Namespace Uri ကိုအောင်မြင်စွာပြုပြင်နိုင်ခဲ့သည်။
XML_set_Ennamespace_Decl_Handler function ကိုအသုံးပြုခြင်းသည် XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်လိုအပ်ပါက namespace ကိုပြုပြင်သည့်အခါ namespace အပြောင်းအလဲများကိုဖမ်းယူရန်ခွင့်ပြုသည်။ ဤနည်းလမ်းအားဖြင့် XML စာရွက်စာတမ်းများရှိ Namespace ကိုပြောင်းလွယ်ပြင်လွယ်ကိုပြောင်းလွယ်ပြင်လွယ်နိုင်သည်။