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

dyml_parse ကို dyml_parse ကိုအသုံးပြုပါ

M66 2025-05-11

PHP တွင် Dom, Simplexml သို့မဟုတ် XML parser ကို အသုံးပြု. XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာရန်နည်းလမ်းများစွာရှိသည်။ ဤဆောင်းပါးသည် XML_Parse () function ကို XML parser နှင့် တွဲဖက်. XML Parser နှင့် တွဲဖက်. မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

XML_Parse ဆိုတာဘာလဲ () ?

XML_Parse () သည် PHP ၏ XML extension function များထဲမှတစ်ခုဖြစ်သည်။ XML_Parser_Create () , xml_set_element_Handler ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုပေါင်းစပ်အသုံးပြုသည်။

နမူနာမြင်ကွင်း - ဝေးလံသောလိပ်စာမှ XML ဒေတာများကိုရယူပါ

XML ကိုထုတ်ပေးသော interface တစ်ခုရှိသည်ဆိုပါစို့။

 https://api.m66.net/data/feed.xml

သင်ဤလိပ်စာမှ XML အချက်အလက်များကိုရယူလိုပြီး <item> tag အောက်ရှိ ခေါင်းစဉ် နှင့် လင့် ခ်ကွက်များကိုခွဲခြမ်းစိတ်ဖြာလိုသည်။

နမူနာကုဒ်

 <?php

// Initialization Parser
$parser = xml_parser_create();

// ဒေတာသိုလှောင်ဘို့ Arrays
$parsedData = [];
$currentTag = '';
$currentItem = [];

// Start Tag ပရိုဆက်ဆာကိုသတ်မှတ်ပါ
function startElement($parser, $name, $attrs) {
    global $currentTag, $currentItem;
    $currentTag = strtolower($name);
    if ($currentTag === 'item') {
        $currentItem = [];
    }
}

// အဆုံး tag processor ကိုသတ်မှတ်ပါ
function endElement($parser, $name) {
    global $currentTag, $currentItem, $parsedData;
    if (strtolower($name) === 'item') {
        $parsedData[] = $currentItem;
    }
    $currentTag = '';
}

// ဇာတ်ကောင်ဒေတာပရိုဆက်ဆာကိုသတ်မှတ်ပါ
function characterData($parser, $data) {
    global $currentTag, $currentItem;
    $data = trim($data);
    if (!$data) return;

    if ($currentTag === 'title') {
        $currentItem['title'] = (isset($currentItem['title']) ? $currentItem['title'] : '') . $data;
    } elseif ($currentTag === 'link') {
        $currentItem['link'] = (isset($currentItem['link']) ? $currentItem['link'] : '') . $data;
    }
}

// Processor ကို set up
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");

// ဝေးလံခေါင်သီကနေရယူပါ XML ကေြနပ်သော
$url = "https://api.m66.net/data/feed.xml";
$xmlData = file_get_contents($url);

if (!$xmlData) {
    die("မရရှိနိုင်ခြင်း XML အချက်များ");
}

// ခွဲခြမ်းစိတ်ဖြာစတင်ပါ
if (!xml_parse($parser, $xmlData, true)) {
    die(sprintf("XML အမှား: %s အတွက် %d အိုကေ",
        xml_error_string(xml_get_error_code($parser)),
        xml_get_current_line_number($parser)));
}

// parser အရင်းအမြစ်များကိုလွှတ်ပေးပါ
xml_parser_free($parser);

// ရလဒ်ရလဒ်
echo "<pre>";
print_r($parsedData);
echo "</pre>";
?>

ထုတ်လုပ်မှုဥပမာ

 Array
(
    [0] => Array
        (
            [title] => နမူနာခေါင်းစဉ်1
            [link] => https://www.m66.net/item/123
        )
    [1] => Array
        (
            [title] => နမူနာခေါင်းစဉ်2
            [link] => https://www.m66.net/item/456
        )
)

အကျဉ်းချုပ်

XML ဒေတာအဆောက်အအုံများကိုအပြည့်အ 0 ထိန်းချုပ်ရန် XML_Parse () ကိုသုံးပါ။ ရိုးရှင်းသော smartxml အဖြစ်မညီမညာဖြစ်သော်လည်းစိတ်ကြိုက်ပြုပြင်ခြင်းစီးဆင်းမှုလိုအပ်သည့်အခြေအနေများအတွက်အလွန်အသုံးဝင်သည်။