Tag ပိတ်သိမ်းမှုအမှားများသည် XML ဒေတာများကိုပြုပြင်သည့်အခါအထူးသဖြင့်ရှုပ်ထွေးသော XML စာရွက်စာတမ်းများကို namespaces နှင့်ခွဲခြမ်းစိတ်ဖြာသောအခါပြ problem နာဖြစ်သည်။ PHP သည် XML_set_Ennamonface_Decl_Handler () function ကိုထောက်ပံ့ရန် XML namespace ၏နောက်ဆုံးကြေငြာချက်များကိုပိုမိုတိကျစွာကိုင်တွယ်ရန်ကူညီရန်အတွက်လုပ်ဆောင်ရန်အတွက်,
XML_set_Ennamespace_Decl_Handler () သည် PHP ရှိ function တစ်ခုဖြစ်ပြီး XML Parser အတွက် namester တစ်ခု၏အဆုံးမှာ callback function ကိုသတ်မှတ်သည်။ Parser သည် Parser သည် namespace ကြေငြာချက်၏အဆုံးနှင့်အတူ tag ကိုတွေ့သောအခါဤပြန်လည်ခေါ်ဆိုမှုကိုအစပျိုးပေးလိမ့်မည်။
bool xml_set_end_namespace_decl_handler ( resource $parser , callable $handler )
$ parser : XML_Parser_Create () မှဖန်တီးထားသော XML parser အရင်းအမြစ်။
$ handler - အသုံးပြုသူသတ်မှတ်ထားသော function တစ်ခု၏အမည်သို့မဟုတ်ခေါ်ဆိုမှုပုံစံ (ဥပမာအားဖြင့်အရာဝတ်ထုနည်းလမ်း) ။
XML တွင် xml ပါ 0 င်သည့်အခါ namespace ၏အစနှင့်အဆုံးကိုမှန်ကန်စွာကိုင်တွယ်နိုင်ခြင်းမရှိသေးပါက tag scope ကိုမှားယွင်းစွာမှားယွင်းစွာထုတ်ဖော်ပြောဆိုရန်လွယ်ကူသည်။ ဥပမာအားဖြင့်, အောက်ပါ XML snippets များသည် namespace ကိုစနစ်တကျစီမံခြင်းမပြုပါကမပြည့်စုံစွာမပြည့်စုံနိုင်ပါ။
<foo:note xmlns:foo="http://gitbox.net/xmlns">
<foo:to>User</foo:to>
<foo:from>Server</foo:from>
</foo:note>
parsters စဉ်အတွင်း namespace ကိုအဆုံးသတ်မထားပါက parser သည်ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းမသတ်မှတ်ပါကခွဲခြမ်းစိတ်ဖြာသည် Namespace ၏ဘဝသံသရာကိုမှတ်တမ်းတင်နိုင်ခြင်းမရှိခဲ့ပါ။
XML_SET_Ennamnonface_Decl_handler () ကိုအသုံးပြုပြီး Namespace ကိုဘယ်လိုဘယ်လိုအခြေအနေမှန်ကိုဘယ်လိုဘယ်လိုလေ့လာရမလဲဆိုတာပြတဲ့အပြည့်စုံတဲ့ဥပမာတစ်ခုပါ။
<?php
// parser ဖန်တီးပါ
$parser = xml_parser_create();
// namespace ပံ့ပိုးမှုသတ်မှတ်
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, true);
// အဆိုပါ namespace ၏အဆုံးမှာ processing function ကိုသတ်မှတ်ပါ
function endNamespaceHandler($parser, $prefix) {
echo "namespace ၏အဆုံး:ရေှ့ဆက်တဲှ = $prefix\n";
}
// namespace အဆုံးသတ်သောပရိုဆက်ဆာကိုသတ်မှတ်ပါ
xml_set_end_namespace_decl_handler($parser, "endNamespaceHandler");
// နမူနာ XML ကြိုး
$xml = <<<XML
<foo:note xmlns:foo="http://gitbox.net/xmlns">
<foo:to>User</foo:to>
<foo:from>Server</foo:from>
</foo:note>
XML;
// ခွဲခြမ်းစိတ်ဖြာ execute
if (!xml_parse($parser, $xml, true)) {
die(sprintf(
"XML အမှား: %s လုပ်ငန်းစဉ်၌ %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)
));
}
// အရင်းအမြစ်များကိုအခမဲ့
xml_parser_free($parser);
?>
XML_SESSED_ENDOPT_ENDOFT_DECL_Handler () သည် "fix" tag ကိုပိတ်ပစ်ခြင်းအမှားများကိုတိုက်ရိုက်ကိုင်တွယ်ခြင်းမဟုတ်ဘဲ Namespace ၏ဘဝသံသရာကိုမှန်ကန်စွာကိုင်တွယ်ခြင်းအားဖြင့်၎င်းသည်အမှန်တကယ် applications များအနေဖြင့်ဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာခွဲခြမ်းစိတ်ဖြာမှုအမှားများကိုကာကွယ်ခြင်း၏အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ xml_set_start_start_necl_handler () နှင့်အခြား callback function များနှင့်ပေါင်းစပ်ပြီး၎င်းသည်ကျွန်ုပ်တို့အား XML ၏ဖွဲ့စည်းပုံကိုပိုမိုတိကျစွာနားလည်ပြီးခွဲခြမ်းစိတ်ဖြာမှုတည်ငြိမ်မှုကိုပိုမိုတိကျစွာနားလည်နိုင်သည်။
XML 0 န်ဆောင်မှုများကို http://gitbox.net domain name ကိုအသုံးပြုခြင်းသည်ဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းသည်အစီအစဉ်၏အမှားသည်းခံမှုနှင့်အချက်အလက်အပြောင်းအလဲအတွက်တိကျမှန်ကန်မှုကိုပိုမိုကောင်းမွန်စေလိမ့်မည်။