PHP ကို XML ကိုအသုံးပြုမည့် XML_Set_Ennamonface_Decl_Handler function သည်လူကြိုက်များသော်လည်းအလွန်အသုံးဝင်သောလုပ်ဆောင်မှုဖြစ်သည်။ developer များက developer များက Namespace ကြေငြာချက်တစ်ခုအပြီးတွင်ပရိုဆက်ဆာတစ်ခုကိုတည်ထောင်ရန်ခွင့်ပြုသည်။ သို့သော် developer များစွာသည်ထိုကဲ့သို့သောစာရွက်စာတမ်းများနှင့်အလုပ်လုပ်စဉ်အသေးစိတ်အချက်အလက်များကိုမကြာခဏလျစ်လျူရှုလေ့ရှိသည်။
XML whitespace ဇာတ်ကောင်များ (ထိုကဲ့သို့သောအသစ်များ, tabs များနှင့်နေရာများ) (ဥပမာအသစ်များ, မှားယွင်းစွာကိုင်တွယ်လျှင်၎င်းသည်မှားယွင်းစွာခွဲခြမ်းစိတ်ဖြာခြင်း, ဒေတာဆုံးရှုံးမှုသို့မဟုတ်ဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာရောဂါများကိုဖြစ်ပေါ်စေနိုင်သည်။
XML_SESS_Ennamonface_Decl_Handler ကို အသုံးပြုသည့်အခါ XML WHITESTATE ဇာတ်ကောင်များကိုမည်သို့ကိုင်တွယ်ရမည်ကိုဤဆောင်းပါးကရှင်းပြပါမည်။
PHP ၏ XML parser ကိုအသုံးပြုသောအခါ (Expat စာကြည့်တိုက်ကို အခြေခံ. ) ကိုအသုံးပြုသောအခါပုံမှန်အပြုအမူသည်စာသား node များအားလုံးကိုလွှဲပြောင်းပေးရန် ( XML_set_character_Data_Handler ) မှစာလုံးများအပါအ 0 င်) ကိုလွှဲပြောင်းရန်ဖြစ်သည်။ ဆိုလိုသည်မှာကွက်လပ်များသည် callback function ကိုဖြစ်ပေါ်စေပြီး namespace processing ယုတ္တိဗေဒကိုအနှောက်အယှက်ဖြစ်စေနိုင်သည်။
ဥပမာအားဖြင့်, အောက်ပါ XML တွင်:
<root xmlns:h="http://gitbox.net/html">
<h:table>
<h:tr>
<h:td>ကေြနပ်သော</h:td>
</h:tr>
</h:table>
</root>
တံဆိပ်များနှင့်တံဆိပ်များအကြားရှိအကြားရှိအကြားရှိဒိုင်းသီးများကိုစာသား node များထဲသို့ခွဲခြားထားသည်။ အကယ်. မလျော်ကန်စွာကိုင်တွယ်လျှင်ဤ whitespace ဇာတ်ကောင်များသည်ခွဲခြမ်းစိတ်ဖြာခြင်းသည်ခွဲခြမ်းစိတ်ဖြာခြင်းကိုအမိန့်ပေးနိုင်သည်။
အပြောင်းအလဲနဲ့လုပ်ငန်းစဉ်အတွင်းအဓိကအချက်မှာဇာတ်ကောင်ဒေတာပရိုဆက်ဆာကိုကျိုးကြောင်းဆီလျော်စွာတပ်ဆင်ပြီးနေရာလွတ်များသာပါ 0 င်သောအကြောင်းအရာများကို filter လုပ်ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်:
$parser = xml_parser_create_ns();
xml_set_end_namespace_decl_handler($parser, function($parser, $prefix) {
echo "namespace ၏အဆုံး:$prefix\n";
});
xml_set_character_data_handler($parser, function($parser, $data) {
if (trim($data) === '') {
// whitespace ဇာတ်ကောင်လျစ်လျူရှု
return;
}
echo "ဇာတ်ကောင်ဒေတာ:$data\n";
});
$xml = <<<XML
<root xmlns:h="http://gitbox.net/html">
<h:table>
<h:tr>
<h:td>ကေြနပ်သော</h:td>
</h:tr>
</h:table>
</root>
XML;
xml_parse($parser, $xml, true);
xml_parser_free($parser);
အထက်ပါကုဒ်တွင် XML_SEST_CHARSTER_CHARSTER_DASE_DASE_DASE_DASE_DASE_DASE_DASE_DATA_Handler တွင် callback function ကို စစ်ဆေးသည်။ သို့ဆိုလျှင်အပြောင်းအလဲနဲ့ skip ။ ဤချဉ်းကပ်မှုသည် whitespace ဇာတ်ကောင်များကို namespace ၏လုပ်ဆောင်မှုကို 0 င်ရောက်စွက်ဖက်ခြင်းမှကာကွယ်ပေးသည်။
ဇာတ်ကောင်အချက်အလက်များနှင့်အတူ interlated namespace အပြောင်းအလဲနဲ့အမိန့် <br> XML တွင်ဇာတ်ကောင်အချက်အလက်များနှင့်အမည်များဆိုင်ရာဖြစ်ရပ်များသည်အပြန်အလှန်ဆက်သွယ်မှုဖြင့်ဖြစ်ပေါ်လာသောဖြစ်ရပ်များကိုဖြစ်ပေါ်စေသည်, Namespace Processor ကိုသတ်မှတ်သည့်အခါ, ဇာတ်ကောင်အချက်အလက်များအတွက် "သန့်စင်ခြင်း" ကိုသေချာစေရန်သေချာစေရန်။
namespace-keep parser ကိုအသုံးပြုခြင်း xml_parser_create_ns () () ကိုမှန်ကန်စွာဖော်ထုတ်နိုင်အောင် Parser ကိုသေချာအောင်လုပ်ပါ။
XML format ကို၏ရှေ့နောက်ညီညွတ်မှုကိုစစ်ဆေးပါ အမှန်တကယ်ဖြန့်ကျက်မှုတွင် XML ၏ပုံစံသည်အရင်းအမြစ်အမျိုးမျိုးမှလာနိုင်သည်။ ခွဲခြမ်းစိတ်ဖြာခြင်းမပြုမီပုံစံကိုပေါင်းစည်းရန်သို့မဟုတ်ခွဲခြမ်းစိတ်ဖြာသည်လုံလောက်မှုရှိစေရန်သေချာစေရန်အကြံပြုသည်။
XML_SESSSESS_END_ENDERS_DECLECL_Handler ကို Namespace End ဖြစ်ရပ်များကိုကိုင်တွယ်ရန် XML ရှိ whitespace ဇာတ်ကောင်များကိုလျစ်လျူရှု။ မရပါ။ အကယ်. အထူးပြုပြင်ခြင်းမပြုလုပ်ပါက, callback ယုတ္တိဗေဒကိုမမှန်ကန်တဲ့အက္ခရာများဖြင့်ကြားဖြတ်နိုင်ပြီးမမှန်ကန်သည့်ခွဲခြမ်းစိတ်ဖြာမှုရလဒ်များရရှိခြင်းဖြစ်သည်။ သင့်လျော်သောဇာတ်ကောင်ဒေတာပရိုဆက်ဆာကိုတည်ဆောက်ခြင်းနှင့်အဓိပ္ပာယ်မရှိသော Whitespace ဇာတ်ကောင်များကိုဖယ်ရှားခြင်းအားဖြင့်, ခွဲစိတ်မှုဆိုင်ရာယုတ္တိဗေဒ၏တည်ငြိမ်မှုနှင့်တိကျမှန်ကန်မှုကိုထိရောက်စွာအာမခံနိုင်ပါသည်။ ဤလုပ်ဆောင်ချက်များကိုမှန်ကန်စွာပေါင်းစပ်ခြင်းသည်ရှုပ်ထွေးသော XML စာရွက်စာတမ်းများကိုအမည်များဖြင့်ကိုင်တွယ်ရန်သော့ချက်ဖြစ်သည်။