PHP တွင် XML ခွဲခြမ်းစိတ်ဖြာခြင်းတွင် XML_SESSS_END_ENNERNAME_DECLE_Handler function သည်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် XML end tags များကိုကိုင်တွယ်သောအခါ callback function ကိုတည်ဆောက်ရန်ခွင့်ပြုသည်။ ဤလုပ်ဆောင်မှုကိုအသုံးပြုပြီး xml end tags များနှင့်ဆက်ဆံရာတွင်အထူးသဖြင့် namespace ရှိသည့်အခါဘုံပြ problems နာများကိုရှောင်ရှားနိုင်သည်။ XML_SET_END_ENDOMPace_Decl_Handler ကို XML ခွဲခြမ်းစိတ်ဖြာခြင်းတွင်ဤဆောင်းပါးသည် XML ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ဆက်စပ်သောပြ problems နာများကိုမည်သို့ရှောင်ရှားရမည်ကိုဆွေးနွေးပါမည်။
XML_SESS_END_ENDOMPARD_DECL_HANDER ဆိုသည်မှာ PHP မှပေးသော function တစ်ခုဖြစ်သော functack function ကို parser ကိုဖွင့်သည့်အခါအဆုံး tag ကိုဖွင့်သောအခါဤပြန်ခေါ်မှုကိုဖြစ်ပေါ်စေမည့် function တစ်ခုပြုလုပ်ရန်ဖြစ်သည်။ အထူးသဖြင့်၎င်းကို Namespace ကြေငြာချက်၏အဆုံးတွင်ဟုခေါ်သည်။
လုပ်ဆောင်ချက်တစ်ခု၏အခြေခံ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool xml_set_end_namespace_decl_handler(resource $parser, callable $handler);
$ parser သည် XML parser အတွက်အရင်းအမြစ်တစ်ခုဖြစ်သည်။
$ handler သည် ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်း namespace ကြေငြာချက်၏အဆုံးကိုပြုပြင်သည့်အခါခေါ်ဆိုမှု function ကိုခေါ်ယူလိမ့်မည်။
XML တွင်အများအားဖြင့် Element ၏ Start နှင့် End tags များနှင့်အများအားဖြင့်အမည်များကိုများသောအားဖြင့်ချိတ်ထားသည်။ အထူးသဖြင့်အမည်စာရင်းများနှင့်ပါ 0 င်သောရှုပ်ထွေးသော XML စာရွက်စာတမ်းများသည်အောက်ပါပြ issues နာများပေါ်ပေါက်လာသောအခါမမှန်ကန်ပါ။
ထပ်ခါတလဲလဲ namespaces : အချို့သောကိစ္စရပ်များတွင်, အဆုံး၏ namespace ၏ namespace ကိုထပ်ခါထပ်ခါခွဲခြမ်းစိတ်ဖြာစေခြင်းငှါ,
Namespace ကိုလျစ်လျူရှုပါ - ခွဲခြမ်းစိတ်ဖြာသည်အချို့သောအမည်များကိုလျစ်လျူရှုနိုင်သည်။
သင့်လျော်သော callback function ကိုတည်ဆောက်ခြင်းအားဖြင့်အထက်ဖော်ပြပါပြ problems နာများကိုကျွန်ုပ်တို့ရှောင်ရှားနိုင်ပြီး XML end tag ကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါအမည်များအားလုံးကိုမှန်ကန်စွာကိုင်တွယ်နိုင်သည်။ XML_SET_END_ENNERNAMNERNAMNERNOME_DECL_Handler ကို XML ၏ End tags များကိုကိုင်တွယ်ရန် XML_SEST_END_ENDERS_DECLEHANDLER ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်နမူနာကုဒ်ဖြစ်သည်။
<?php
// aXMLမိစ်ဆာ
$parser = xml_parser_create();
// namespace ကြေငြာချက်အဆုံးသတ်သည့် callback function ကိုသတ်မှတ်ပါ
function endNamespaceDeclHandler($parser, $prefix) {
echo "namespace ကြေငြာချက်အဆုံးသတ်: {$prefix}\n";
}
// 将回调函数与မိစ်ဆာ关联
xml_set_end_namespace_decl_handler($parser, "endNamespaceDeclHandler");
// နမူနာXMLကြိုး
$xml = <<<XML
<root xmlns:ns="http://gitbox.net/namespace">
<ns:item>ကေြနပ်သော1</ns:item>
<ns:item>ကေြနပ်သော2</ns:item>
</root>
XML;
// ခွဲခြမ်းစိတ်ဖြာစတင်ပါXMLကြိုး
if (!xml_parse($parser, $xml)) {
echo "XMLအမှားခွဲခြမ်းစိတ်ဖြာခြင်း: " . xml_error_string(xml_get_error_code($parser)) . "\n";
}
// အဆုံးသတ်ခွဲခြမ်းစိတ်ဖြာ
xml_parser_free($parser);
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် XML parser တစ်ခုကို ဖန်တီး. namespace ၏နောက်ဆုံးကြေငြာချက်ကိုကိုင်တွယ်ရန် callback functioneclhandler ကို set up လုပ်ပါ။ parser သည် parser ကိုတွေ့သောအခါ namespace end tag ကိုတွေ့သောအခါ callback function ကိုဟုခေါ်သည်။
XML_Parser_Create () ကို အသုံးပြု. XML parser ကိုဖန်တီးပါ။
XML_SESSSESS_END_ENDOMPARD_DECLECLLER () callback function ကိုသတ်မှတ်ရန် (XML parser သည် namespace end tag ကိုတွေ့သောအခါအစပျိုးလိမ့်မည်။
ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်း callback function သည် namespace ၏ရှေ့ဆက်ကို output ကိုထုတ်ပေးလိမ့်မည်။
ခွဲခြမ်းစိတ်ဖြာပြီးတဲ့အခါ, parser အရင်းအမြစ်များကိုလွှတ်ပေးပါ။
XML_set_Ennamespace_Decller function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် XML ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်း Namespace End tags များကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်နိုင်ပြီးတူညီသောခွဲခြမ်းစိတ်ဖြာပြ problems နာများကိုရှောင်ရှားနိုင်သည်။ ဤ callback function ကိုအသုံးပြုခြင်းအားဖြင့် xml စာရွက်စာတမ်းများနှင့်အတူ namespaces နှင့်ကိုင်တွယ်ရာတွင် Namespace ကြေငြာချက်များမရရှိနိုင်ပါ။
XML ကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါ end tags များဖြင့်ပြ problems နာများကိုသင်ကြုံတွေ့ရပါကသင်၏ကုဒ်ကိုရိုးရှင်းစေရန်နှင့် parsing တည်ငြိမ်မှုကိုတိုးတက်စေရန်ဤလုပ်ဆောင်မှုကိုအသုံးပြုရန်စဉ်းစားရန်သတိရပါ။