လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML_SESS_STATT_START_START_STATT_STACL_Handler နှင့်ပူးပေါင်းပါ။ XML_SESS_END_ENDERNAMNERNERNAMNERS_DECL_Handler ကိုသုံးပါ

XML_SESS_STATT_START_START_STATT_STACL_Handler နှင့်ပူးပေါင်းပါ။ XML_SESS_END_ENDERNAMNERNERNAMNERS_DECL_Handler ကိုသုံးပါ

gitbox 2025-05-26

အောက်တွင်ဖော်ပြထားသော PHP နမူနာကုဒ်သည် XML_set_start_start_decller နှင့် XML_SESS_END_END_END_END_END_END_END_DECT_DECTS_DECL_Handler လုပ်ဆောင်ချက်များကို အသုံးပြု. PHP နမူနာကုဒ်ဖြစ်သည်။ XML ခွဲခြမ်းစိတ်ဖြာနေစဉ်အတွင်း namespace တစ်ခု၏ကြေငြာချက်တစ်ခုကိုမည်သို့ဖမ်းယူရမည်ကိုပြသသည်။

 <?php

// ဖန်တီး XML မိစ်ဆာ
$parser = xml_parser_create();

// namespace ကြေငြာချက်၏အစအ ဦး မှာ callback function ကိုသတ်မှတ်ပါ
xml_set_start_namespace_decl_handler($parser, "startNamespaceHandler");

// namespace ကြေငြာချက်၏အဆုံးမှာ callback function ကိုသတ်မှတ်ပါ
xml_set_end_namespace_decl_handler($parser, "endNamespaceHandler");

// XML ကြိုး
$xml_data = <<<XML
<root xmlns:foo="http://gitbox.net/foo" xmlns:bar="http://gitbox.net/bar">
    <foo:item>Item 1</foo:item>
    <bar:item>Item 2</bar:item>
</root>
XML;

// သုံးသပ်ကြည့်ရှုခြင်း XML အချက်များ
if (!xml_parse($parser, $xml_data)) {
    die(sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
}

// 释放မိစ်ဆာ
xml_parser_free($parser);

// namespace ကြေငြာချက်၏အစအ ဦး မှာ callback function ကို
function startNamespaceHandler($parser, $prefix, $uri) {
    echo "Namespace start: Prefix = {$prefix}, URI = {$uri}\n";
}

// namespace ကြေငြာချက်၏အဆုံးမှာ callback function ကို
function endNamespaceHandler($parser, $prefix) {
    echo "Namespace end: Prefix = {$prefix}\n";
}

?>

code parsing

  1. XML parser တစ်ခုဖန်တီးပါ
    XML parser ဥပမာအသစ်တစ်ခုကိုဖန်တီးရန် XML_Parser_Create () ကိုသုံးပါ။

  2. namespace ကြေငြာချက်ပြန်ထည့်ပါ
    xml_set_start_start_decller နှင့် xml_set_Ennames_handler နှင့် xml_set_Ennamespace_Decl_handler လုပ်ဆောင်ချက်များကို Namestace ကြေငြာချက်၏အစနှင့်အဆုံးအဆင့်များကိုအစနှင့်အဆုံးအဆင့်များကိုသတ်မှတ်ထားသည်။ ဤ callback function များကို parser သည် namespace ကြေငြာချက်ကိုတွေ့သောအခါအလိုအလျောက်ခေါ်ဆိုသည်။

  3. xml အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာခြင်း -
    xml_parse () function ကို parser သို့ parser သို့ parser သို့ဖြတ်သန်းပါ။ အမှားတစ်ခုကြုံတွေ့ရပါက XML_ERRORO_STRING () နှင့် XML_GET_CURRENT_LINE_NUMBERS () သည် အမှားအယွင်းများကိုကြည့်ရှုရန်ကူညီနိုင်သည်။

  4. namespace အပြောင်းအလဲနဲ့ :

    • startnamespacehandler callback function သည် parameteration သုံးခုကိုလက်ခံရရှိသည်။ parser ဥပမာအားဖြင့် namespace ၏ရှေ့ဆက်နှင့် URL ။ namespace ကြေငြာချက်ကိုကြုံတွေ့ရသောအခါ namespace ၏ရှေ့ဆက်နှင့် URL ကိုထုတ်ပြန်သည်။

    • EnterDamespaceHandler Callback Function သည် parameter နှစ်ခုကိုရရှိသည်။ parser ဥပမာ၏ရှေ့ဆက်နှင့် namespace ၏ရှေ့ဆက် ၎င်းကို namespace ၏ရှေ့ဆက် outpix ကိုအပြီးသတ်ကြေငြာခြင်း၏အဆုံးတွင်ခေါ်လိမ့်မည်။

မှတ်သားရန်အရာ

  • လက်တွေ့ကျသောအပလီကေးရှင်းများတွင် XML စာရွက်စာတမ်းများတွင် namespace ကြေငြာချက်များအမြတ်များစွာပါ 0 င်နိုင်သည်။

  • ဤ callback function နှစ်ခုသည်အားကောင်းသောယန္တရားတစ်ခုဖြစ်ပြီးရှုပ်ထွေးသော XML ဒေတာများကိုကိုင်တွယ်သောအခါအထူးသဖြင့်အသုံးဝင်သောအရာများ၏ခွဲခြမ်းစိတ်ဖြာမှုဖြစ်စဉ်ကိုတိကျစွာထိန်းချုပ်ရန်ခွင့်ပြုသည့်အစွမ်းထက်သောယန္တရားတစ်ခုပေးသည်။

XML_SET_STATT_STATT_STATTER_Handler နှင့် XML_SESSS_Handler ကိုပေါင်းစပ်ပြီး xml_set_end_end_EndeSt_Decl_Handler ကို ပေါင်းစပ်ပြီး xml စာရွက်စာတမ်းများကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါ Namespace ကိုခွဲခြားသတ်မှတ်နိုင်ပြီးကြေငြာချက်များသည်တိကျမှန်ကန်စွာကိုင်တွယ်ဖြေရှင်းနိုင်ရန်ဖြစ်သည်။