လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML စာရွက်စာတမ်းများတွင်မှတ်ချက်ပေးရန်အတွက် XML_SESSEFAFEST_DEFAUNT_Handler function ကိုအသုံးပြုနည်း။

XML စာရွက်စာတမ်းများတွင်မှတ်ချက်ပေးရန်အတွက် XML_SESSEFAFEST_DEFAUNT_Handler function ကိုအသုံးပြုနည်း။

M66 2025-06-15

PHP တွင် XML စာရွက်စာတမ်းများကိုထုတ်လုပ်သည့်အခါများသောအားဖြင့်အသုံးပြုသော paring method များထဲမှတစ်ခုဖြစ်သည်။ XML ကို Expat နှင့်ခွဲခြမ်းစိတ်ဖြာသည့်အခါ, element start, element end, character data data စသည့်ကွဲပြားခြားနားသော XML node များပြုလုပ်ရန် callback functions အမျိုးမျိုးကိုသင်မှတ်ပုံတင်နိုင်သည်။

xml_set_default_handler ဆိုတာဘာလဲ။

XML_SET_DEFAUND_Handler သည် PHP ရှိ XML parser ၏ function တစ်ခုဖြစ်သည်။ ၎င်းသည် default processing function ကိုသတ်မှတ်သည်။ ဤပုံမှန် processing function ကိုအထူး callback function မှမလုပ်ဆောင်သော XML အပိုင်းအစတစ်ခုကိုကြုံတွေ့ရသောအခါကြုံတွေ့ရသည့် XML အပိုင်းအစတစ်ခုကိုတွေ့သောအခါခေါ်ယူခြင်းဖြစ်သည်။ မှတ်ချက်များ, CDATA ကဏ် sections များစသဖြင့် default processing function ကိုဖြစ်ပေါ်စေလိမ့်မည်။

ထို့ကြောင့်ကျွန်ုပ်တို့သည် XML_SET_DEFAUND_Handler မှတဆင့်မှတ်စုများကိုဖမ်းယူနိုင်ပြီး၎င်းကိုအညီလုပ်ဆောင်နိုင်သည်။

နမူနာကုဒ်ရှင်းပြချက်

XML_Set_Default_Handler ကို XML ရှိမှတ်ချက်ပေးရန်အတွက် XML_SET_DEFAUND_Handler ကို မည်သို့အသုံးပြုရမည်ကိုပြသသောဥပမာတစ်ခုဖြစ်သည်။

 <?php
// aXMLမိစ်ဆာ
$parser = xml_parser_create();

// default processing function ကိုသတ်မှတ်ပါ,မှတ်ချက်များနှင့်အခြားတခြားကျရှုံးသည့်အကြောင်းအရာများကိုဖမ်းယူပါ
xml_set_default_handler($parser, 'defaultHandler');

// default processing function ကိုသတ်မှတ်ပါ
function defaultHandler($parser, $data) {
    // မှတ်ချက်အကြောင်းအရာသည်များသောအားဖြင့်ဖြစ်သည်<!--အစ,ဖြင့်-->အဆုံး
    if (preg_match('/^<!--(.*)-->$/s', $data, $matches)) {
        echo "မှတ်ချက်အကြောင်းအရာ: " . trim($matches[1]) . "\n";
    } else {
        // 这里可ဖြင့်处理其他未捕获的ကေြနပ်သော,ကဲ့သို့CDATAစောင့်
        echo "ပုံမှန်အားဖြင့်ပါဝင်မှု process: " . trim($data) . "\n";
    }
}

// ဖတ်XMLအချက်များ
$xml = <<<XML
<?xml version="1.0"?>
<!-- ဒါXML၏မှတ်ချက်များ -->
<root>
    <child>ကေြနပ်သော</child>
    <!-- 子元素၏မှတ်ချက်များ -->
</root>
XML;

// သုံးသပ်ကြည့်ရှုခြင်းXMLအချက်များ
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);
?>

Code ဖော်ပြချက်:

  • ကျနော်တို့တစ် ဦး parser $ parser ဖန်တီးခဲ့သည်။

  • Defaulthandler function သည် XML_SESS_DEFAfeFAUT_Handler ကို အသုံးပြု. မှတ်ပုံတင်ထားသည့် charkback မှသိမ်းဆည်းထားခြင်းမရှိသောအကြောင်းအရာအားလုံးကိုကိုင်တွယ်ရန်မှတ်ပုံတင်ထားသည်။

  • default processing function တွင်အချက်အလက်များသည်မှတ်စုတစ်ခုရှိမရှိစစ်ဆေးရန်ပုံမှန်အသုံးအနှုန်းကိုအသုံးပြုသည်။

  • အထူးပြုလုပ်ထားသောအခြားအကြောင်းအရာများသည်ထုတ်လုပ်မှုလည်းဖြစ်လိမ့်မည်။ သို့သော်ဤနေရာတွင်ကျွန်ုပ်တို့သည်မှတ်ချက်များအပေါ်အဓိကအာရုံစိုက်သည်။

Run ရလဒ်ဥပမာ -

 မှတ်ချက်အကြောင်းအရာ: ဒါXML၏မှတ်ချက်များ
ပုံမှန်အားဖြင့်ပါဝင်မှု process: 

ပုံမှန်အားဖြင့်ပါဝင်မှု process: 

မှတ်ချက်အကြောင်းအရာ: 子元素၏မှတ်ချက်များ

သင်တွေ့မြင်ရသည့်အတိုင်းမှတ်ချက်အကြောင်းအရာကိုအောင်မြင်စွာဖမ်းယူနိုင်ပြီး output ကိုအောင်မြင်စွာဖမ်းယူနိုင်ခဲ့သည်။

အကျဉ်းချုပ်

xml_set_default_Handler ကိုအသုံးပြုပြီးမှတ်ချက်များအပါအ 0 င်အခြားအထူး callbacks များကသိမ်းဆည်းထားခြင်းမရှိသော XML တွင်အကြောင်းအရာများကိုကျွန်ုပ်တို့ကိုင်တွယ်နိုင်သည်။ ရိုးရှင်းသောပုံမှန်ကိုက်ညီမှုဖြင့်မှတ်ချက်စာသားကိုသက်ဆိုင်ရာအပြောင်းအလဲအတွက်ထုတ်ယူနိုင်သည်။

ဤချဉ်းကပ်မှုသည် Expat parser ကိုအသုံးပြုသည့်အခါသစ်ထုတ်လုပ်ခြင်း, စီစစ်ခြင်းသို့မဟုတ်အကြောင်းအရာထုတ်ယူခြင်းစသည့်မှတ်ချက်များကိုစိတ်ကြိုက်ပြုပြင်ခြင်းအတွက်အထူးသဖြင့်သင့်တော်သည်။