လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> xml_set_end_ennamespace_decl_handler ကို အသုံးပြု. XML ဖိုင်တွင် namespace ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ပြုပြင်ခြင်းကိုမည်သို့ပြုပြင်ရမည်နည်း။

xml_set_end_ennamespace_decl_handler ကို အသုံးပြု. XML ဖိုင်တွင် namespace ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ပြုပြင်ခြင်းကိုမည်သို့ပြုပြင်ရမည်နည်း။

gitbox 2025-05-20

PHP တွင် XML_set_Ennamnonface_Decl_Handler function သည် XML ခွဲခြမ်းစိတ်ဖြာသည့်အခါ namespace ကြေငြာချက်၏အဆုံးကိုကိုင်တွယ်သော callback function ဖြစ်သည်။ XML ခွဲခြမ်းစိတ်ဖြာခြင်းတွင်အထူးသဖြင့် XML စာရွက်စာတမ်းများကို namespace များဖြင့်ခွဲထုတ်သည့်အခါ,

1 ။ xml_set_end_ennames_decl_handler မှအခြေခံနိဒါန်း

XML_set_Ennamespace_Decl_Handler function ကို xml ခွဲခြမ်းစိတ်ဖြာသည့်အခါ Namespace ကြေငြာချက်၏အဆုံးတွင်ဟုခေါ်သော callback function ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ဤ callback function ကို namespace အပြောင်းအလဲများကိုမှတ်တမ်းတင်ရန်သို့မဟုတ် namespace ပေါ်တွင်လိုအပ်သောပြုပြင်ခြင်းပြုလုပ်ရန်အသုံးပြုနိုင်သည်။

2 ။ လုပ်ဆောင်ချက်များ၏အခြေခံ syntax

 bool xml_set_end_namespace_decl_handler ( resource $parser , callable $handler )
  • $ Parser : XML parser အရင်းအမြစ်ကို XML_Parser_Create မှတဆင့်ဖန်တီးထားသည်။

  • $ handler - parser သည် Namester ကြေငြာချက်၏အဆုံးကိုတွေ့သောအခါ callback function ကိုခေါ်သည်။

3 ။ အမှန်တကယ်ကိစ္စ - Parse XML နှင့်ပြုပြင်မွမ်းမံ namespace

ကျွန်ုပ်တို့တွင် 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);
?>

4 ။ ကုဒ်ဖော်ပြချက်

  1. XML Parser ကိုဖန်တီးပါ ။ XML parser အရင်းအမြစ်တစ်ခုကိုဖန်တီးရန် XML_Parser_Create ကို ပထမဆုံးအသုံးပြုပါ။

  2. Callback function ကိုသတ်မှတ်ခြင်း - ကျွန်ုပ်တို့သည် parser ၏ကြေငြာချက်၏အဆုံးကိုတွေ့ရမည့် Entnamespareecl ဟုခေါ်သော functionecl ဟုခေါ်သော function ကိုသတ်မှတ်သည်။ ၎င်းသည်လက်ရှိအဆုံးသတ်ထားသော namespace ၏ရှေ့ဆက်နှင့် URI ကိုထုတ်ပေးသည်။

  3. Modifess Namespace - ကျွန်ုပ်တို့သည်သတ်မှတ်ထားသော namespace ဟောင်းကိုကျွန်ုပ်တို့သတ်မှတ်ထားသောအဟောင်းကိုကြုံတွေ့ရပါက ( http://www.exampe.com/dodampteface ) ကို ကျွန်ုပ်တို့ကြုံတွေ့ရပါက,

  4. Parse XML - ကျွန်ုပ်တို့သည် XML အချက်အလက်များကို namespace တစ်ခုဖြင့် ပေး. ဒေတာများကို XML_Parse function မှတဆင့်ခွဲခြမ်းစိတ်ဖြာပါ။

  5. Parser : Parsing ပြီးစီးပြီးနောက် parser အရင်းအမြစ်များကိုလွှတ်ပေးရန်သတိရပါ။

5 ။ output ရလဒ်

အထက်ပါကုဒ်ကိုကျွန်ုပ်တို့ဖွင့်သောအခါ output သည်ပြလိမ့်မည်။

 Namespace ended: Prefix = 'old', URI = 'http://www.example.com/oldnamespace'
Changing namespace URI

ဤအချက်ကကျွန်ုပ်တို့၏ callback function ကို namespace ကြေငြာချက်၏အဆုံးတွင်ပစ်ခတ်ပြီး Namespace Uri ကိုအောင်မြင်စွာပြုပြင်နိုင်ခဲ့သည်။

6 ။ အကျဉ်းချုပ်

XML_set_Ennamespace_Decl_Handler function ကိုအသုံးပြုခြင်းသည် XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်လိုအပ်ပါက namespace ကိုပြုပြင်သည့်အခါ namespace အပြောင်းအလဲများကိုဖမ်းယူရန်ခွင့်ပြုသည်။ ဤနည်းလမ်းအားဖြင့် XML စာရွက်စာတမ်းများရှိ Namespace ကိုပြောင်းလွယ်ပြင်လွယ်ကိုပြောင်းလွယ်ပြင်လွယ်နိုင်သည်။