လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML_SET_CHARSTER_DATATA_Handler နှင့်အတူ XML_PARYSESSE ကိုမည်သို့အသုံးပြုရမည်နည်း

XML_SET_CHARSTER_DATATA_Handler နှင့်အတူ XML_PARYSESSE ကိုမည်သို့အသုံးပြုရမည်နည်း

M66 2025-04-26

XML data များထုတ်လုပ်သည့်အခါ PHP သည် XML parser extensions extensions များနှင့် xml_parse_Data_Handler သည် XML text node များခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်အရေးကြီးသောကိရိယာများဖြစ်သည်။ ဤလုပ်ဆောင်ချက်နှစ်ခုသည် XML တွင်စာသားအကြောင်းအရာများကိုထိရောက်စွာဖတ်ရန်နှင့်လုပ်ဆောင်ရန်အတူတကွလုပ်ဆောင်ကြသည်။ ဤဆောင်းပါးသည် XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာရန်မည်သို့အသုံးပြုရမည်ကိုပြသရန်ရိုးရှင်းသောဥပမာကိုအသုံးပြုလိမ့်မည်။

1 ။ အခြေခံသဘောတရားများ

xml_parse

XML_Parse () သည် XML ဒေတာများကိုစတင်ခွဲထုတ်ရန်အသုံးပြုသော core function ဖြစ်သည်။ ၎င်းသည် parser အရင်းအမြစ်နှင့် parameters များအနေဖြင့် XML string ကိုလက်ခံရရှိသည်။

xml_set_character_data_handler

xml_set_character_Data_Handler () XML ရှိစာသား node ကိုကြုံတွေ့ရသောအခါ callback function ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ဆိုလိုသည်မှာ tags များအကြားလွင်ပြင်စာသား (CDATA) ပါဝင်မှုအားလုံးသည်ဤ function မှတဆင့်လုပ်ဆောင်လိမ့်မည်။

2 ။ ဥပမာ - xml နှင့် Extract Text ကိုထုတ်ယူပါ

XML ရှိစာသားအကြောင်းအရာများကိုထုတ်ယူရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုပြသရန်ဥပမာတစ်ခုကိုအသုံးပြုကြပါစို့။

 <?php

// 1. ပြင်ဆင်ထား XML ကြိုး
$xmlData = <<<XML
<books>
    <book>
        <title>PHP Programming အလေ့အကျင့်</title>
        <author>Zhang San</author>
    </book>
    <book>
        <title>နက်ရှိုင်းသောနားလည်မှု XML</title>
        <author>li si</author>
    </book>
</books>
XML;

// 2. တစ် ဦး ကန ဦး XML မိစ်ဆာ
$parser = xml_parser_create();

// 3. Extracted စာသားအကြောင်းအရာကိုစတိုးဆိုင်
$textContents = [];

// 4. စာသားများပြုလုပ်သော callback function ကိုသတ်မှတ်ပါ
function handleCharacterData($parser, $data) {
    global $textContents;

    // အလွတ်အက္ခရာများကိုရှင်းလင်းပါ
    $data = trim($data);
    if (!empty($data)) {
        $textContents[] = $data;
    }
}

// 5. ဇာတ်ကောင်ဒေတာအပြောင်းအလဲနဲ့ function ကိုသတ်မှတ်ပါ
xml_set_character_data_handler($parser, "handleCharacterData");

// 6. သုံးသပ်ကြည့်ရှုခြင်း XML အချက်များ
if (!xml_parse($parser, $xmlData, true)) {
    die("XML အမှား: " . xml_error_string(xml_get_error_code($parser)));
}

// 7. 释放မိစ်ဆာ资源
xml_parser_free($parser);

// 8. ထုတ်ယူစာသားအကြောင်းအရာ output ကို output
echo "Extracted text အကြောင်းအရာများသည်အောက်ပါအတိုင်းဖြစ်သည်:<br>";
foreach ($textContents as $text) {
    echo htmlspecialchars($text) . "<br>";
}

?>

3 ။ output ရလဒ်

အထက်ပါ PHP script ကိုဖွင့်ပြီးနောက်, အောက်ပါ output သည်:

 Extracted text အကြောင်းအရာများသည်အောက်ပါအတိုင်းဖြစ်သည်:
PHP Programming အလေ့အကျင့်
Zhang San
နက်ရှိုင်းသောနားလည်မှု XML
li si

IV ။ လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ်

ဤခွဲခြမ်းစိတ်ဖြာနည်းသည်အထူးသဖြင့် XML ဒေတာသေးငယ်သည့်အချက်အလက်များကိုထုတ်လုပ်ရန်အတွက်အထူးသဖြင့်သင့်တော်သည်။ သို့မဟုတ် tags များအကြားစာသားအကြောင်းအရာများကိုထပ်မံလုပ်ဆောင်လိုပါက။ ဥပမာအားဖြင့်:

  • RSS feeds တွင်သတင်းခေါင်းစဉ်များနှင့်အကြောင်းအရာများတွားခြင်း,

  • parses ထုံးစံ XML တုံ့ပြန်မှုများကို https://api.m66.net/data.xml မှပြန်လာသည်။

  • configuration file ဖိုင်သို့မဟုတ်ဒေတာဖိုင်ရှိစာသားကိုထုတ်ယူပါ။

5 ။ မှတ်စုဖို့အရာ

  • XML_Parser_Create () ဖြင့်ဖန်တီးထားသောခွဲခြမ်းစိတ်ဖြာခြင်း () ကို XML_Parser_Free () ကိုအသုံးပြုပြီးနောက်အရင်းအမြစ်များကိုထုတ်ပေးရန်လိုအပ်သည်။

  • စာသားအကြောင်းအရာထုတ်ယူခြင်းလုပ်ဆောင်ချက်များသည် 0 င်ရောက်စွက်ဖက်ခြင်းကိုရှောင်ရှားရန် Whitespace ဇာတ်ကောင်များကိုစစ်ထုတ်ရန်လိုအပ်သည်။

  • PHP ၏ XML Parser သည်သရုပ်ဆောင်ခြင်းဖြစ်ပြီးကွဲပြားသော XML အစိတ်အပိုင်းများကိုကိုင်တွယ်ရန် ( XML_SESSESSESS ) ၏လုပ်ငန်းဆောင်တာများစွာကိုမှတ်ပုံတင်ရန်လိုအပ်သည်။

XML_Parse နှင့် XML_set_character_Data_Handler ကို ပေါင်းစပ်ပြီး XML ရှိစာသားအကြောင်းအရာများကို XML တွင်ကိုင်တွယ်နိုင်သည်။ ၎င်းသည်ရိုးရှင်းသော string ကိုထုတ်ယူခြင်းသို့မဟုတ်ရှုပ်ထွေးသောယုတ္တိဗေဒထုတ်လုပ်မှုသို့မဟုတ်ရှုပ်ထွေးသောယုတ္တိဗေဒထုတ်လုပ်မှုရှိ,

PHP တွင် XML parses ကိုမည်သို့နားလည်ကြောင်းဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။ ဒေတာကိုဒေတာဘေ့စ်သို့မဟုတ်ဝက်ဘ်စာမျက်နှာပြသသည့်အချက်အလက်များကိုထပ်မံပေါင်းစပ်ရန်လိုအပ်ပါကပိုမိုနီးကပ်စွာလျှောက်လွှာလုပ်ဆောင်မှုများကိုအောင်မြင်ရန်ကုဒ်ဖွဲ့စည်းပုံကိုဆက်လက်တိုးချဲ့နိုင်သည်။