PHP တွင် Dom, Simplexml သို့မဟုတ် XML parser ကို အသုံးပြု. XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာရန်နည်းလမ်းများစွာရှိသည်။ ဤဆောင်းပါးသည် XML_Parse () function ကို XML parser နှင့် တွဲဖက်. XML Parser နှင့် တွဲဖက်. မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
XML_Parse () သည် PHP ၏ XML extension function များထဲမှတစ်ခုဖြစ်သည်။ XML_Parser_Create () , xml_set_element_Handler ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုပေါင်းစပ်အသုံးပြုသည်။
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 အဖြစ်မညီမညာဖြစ်သော်လည်းစိတ်ကြိုက်ပြုပြင်ခြင်းစီးဆင်းမှုလိုအပ်သည့်အခြေအနေများအတွက်အလွန်အသုံးဝင်သည်။