PHP တွင် XML ဖိုင်များကိုခွဲခြမ်းစိတ်ဖြာခြင်းသည်ဒေတာဖလှယ်ခြင်းနှင့် configuration files များကိုကိုင်တွယ်ရန်အသုံးများသောနည်းလမ်းဖြစ်သည်။ XML_Parse () function သည် PHP မှပေးသောဖြစ်ရပ်တစ်ခုကိုမောင်းနှင်ထားသော XML parsing နည်းလမ်းဖြစ်သည်။ အခြား parser function များကိုပေါင်းစပ်ခြင်းအားဖြင့် XML ဖိုင်များရှိဒြပ်စင်နှင့် attribute များကိုဖတ်ရှုနိုင်သည်။ XML_Parse () ကို XML_Parse () ကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ရန်ဤဆောင်းပါးသည်သင့်အား XML_Parse () Element အကြောင်းအရာနှင့် attribute အချက်အလက်များကိုထုတ်ယူရန်နားလည်ရန်တစ်ဆင့်ချင်းသွားပါလိမ့်မည်။
ခွဲခြမ်းစိတ်ဖြာလေ့ကျင့်ခန်းများအတွက်ရိုးရှင်းသော XML ဥပမာတစ်ခုကို ဦး စွာပြင်ဆင်ပါ။ ဖိုင်ကို ဥပမာ အမည်ရှိကြောင်းအမည်ရှိကြောင်းယူဆပါ, အကြောင်းအရာသည်အောက်ပါအတိုင်းဖြစ်သည် -
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="101" genre="fiction">
<title>PHP စတင်အသုံးပြုခြင်း</title>
<author>Zhang San</author>
</book>
<book id="102" genre="programming">
<title>နက်ရှိုင်းသောနားလည်မှု PHP</title>
<author>li si</author>
</book>
</books>
PHP ၏ XML parsing သည်ဖြစ်ရပ်-based ချဉ်းကပ်နည်းကိုအသုံးပြုသည်။ ကျွန်ုပ်တို့သည်ကိုင်တွယ်သူများစွာကိုသတ်မှတ်ရန်နှင့် parser ကိုချည်ထားရန်လိုအပ်သည်။
<?php
$parser = xml_parser_create();
function startElement($parser, $name, $attrs) {
echo "Element ကိုစတင်ပါ: $name\n";
if (!empty($attrs)) {
echo "ဉစ်စာပစ္စည်းများ:\n";
foreach ($attrs as $key => $value) {
echo " - $key = $value\n";
}
}
}
function endElement($parser, $name) {
echo "Ender: $name\n";
}
function characterData($parser, $data) {
$data = trim($data);
if (!empty($data)) {
echo "ကေြနပ်သော: $data\n";
}
}
// Transuation function ကိုခညျြနှောငျ
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
ယခုကျွန်ုပ်တို့သည် ဥပမာ ကိုဖတ်ပြီး parser ကို သုံး. ၎င်းကိုခွဲခြမ်းနေပါ။
$fp = fopen("example.xml", "r");
if (!$fp) {
die("ဖိုင်ကိုဖွင့ ်. မရပါ");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($parser, $data, feof($fp))) {
die(sprintf(
"XML အမှား: %s အတွက် %d အိုကေ",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)
));
}
}
xml_parser_free($parser);
fclose($fp);
?>
ဇာတ်ညွှန်းကိုဖွင့်ပြီးနောက်, Terminal သည် element တစ်ခုစီ၏အစနှင့်အဆုံး, ဥပမာအားဖြင့်:
Element ကိုစတင်ပါ: BOOKS
Element ကိုစတင်ပါ: BOOK
ဉစ်စာပစ္စည်းများ:
- ID = 101
- GENRE = fiction
Element ကိုစတင်ပါ: TITLE
ကေြနပ်သော: PHP စတင်အသုံးပြုခြင်း
Ender: TITLE
Element ကိုစတင်ပါ: AUTHOR
ကေြနပ်သော: Zhang San
Ender: AUTHOR
Ender: BOOK
...
XML_Parse () function ကို Processor function ကိုပေါင်းစပ်ပြီး, ဒေတာကိုထုတ်ယူရမယ်,
echo "<a href='https://m66.net/book.php?id=101'>စစ်ဆေး《PHP စတင်အသုံးပြုခြင်း》</a>";
ဤနည်းလမ်းသည်ဒေတာစာဖတ်ခြင်းလုပ်ငန်းစဉ်ကိုစိတ်ကြိုက်ပြုပြင်ခြင်းအတွက်အလွန်လက်တွေ့ကျသည်။
XML_Parse () XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာရန်ပေါ့ပါး။ အလျင်အမြန်နည်းလမ်းကိုပေးသည်။ ၎င်းသည် Dom Parser ထက် ပို. အခြေခံကျသည်မှာမူစွမ်းဆောင်ရည်လိုအပ်ချက်များမှာမြင့်မားသောသို့မဟုတ်ဒေတာအဆောက်အအုံများကိုလူသိများသောအခြေအနေများအတွက်အလွန်သင့်လျော်သောရွေးချယ်မှုဖြစ်သည်။ အဖြစ်အပျက်ကိုမောင်းနှင်ခြင်းဖြစ်သည့်ခွဲခြမ်းစိတ်ဖြာခြင်းသည် XML ဖိုင်များကိုပိုမိုနက်ရှိုင်းစွာ၏ဖွဲ့စည်းပုံနှင့်အချက်အလက်ပြုပြင်ထုတ်လုပ်မှုယန္တရားကိုပိုမိုနက်ရှိုင်းစွာနားလည်သဘောပေါက်ရန်ကူညီလိမ့်မည်။