PHP Development တွင် XML အချက်အလက်များသည်အထူးသဖြင့်အမွေအနှစ်စနစ်များကိုရှာဖွေခြင်းသို့မဟုတ်အချို့သော apis ကိုဖတ်ရှုသောအခါအထူးလိုအပ်ချက်တစ်ခုဖြစ်ပါသည်။ JSON သည်ယခုအခါ ပို. လူကြိုက်များသော်လည်း XML တွင်အချက်အလက်များစွာရှိနေသေးသည်။ ရှေ့တန်းပရိုဂရမ်ရေးဆွဲခြင်း (သို့) နောက်ဆက်တွဲအပြောင်းအလဲကိုလွယ်ကူချောမွေ့စေရန်ကျွန်ုပ်တို့သည် XML ကို JSON format သို့ပြောင်းလဲရန်လိုအပ်သည်။
ဤဆောင်းပါးတွင် PHP ၏ XML_PRYSSE function ကို XML ကြိုးများကိုခင်းကျင်းဖွဲ့စည်းပုံတစ်ခုသို့ခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုပါမည် ။
ဝေးလံခေါင်သီသောလိပ်စာမှရရှိသောတုန့်ပြန်မှုကိုတုပရန်နမူနာ XML အချက်အလက်များကိုကျွန်ုပ်တို့ပထမ ဦး စွာပြင်ဆင်ရန် (ဥပမာ https://api.m66.net/data.xml )
$xml_data = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<title>PHP Programming အလေ့အကျင့်</title>
<author>Zhang San</author>
<year>2021</year>
</book>
<book>
<title>နက်ရှိုင်းသောနားလည်မှု XML</title>
<author>li si</author>
<year>2020</year>
</book>
</books>
XML;
XML_Parse သည်အဆင့်နိမ့် xml parsing function ကိုဖြစ်သည်။ xml_parser_create_create နှင့် callback function များကို xml အကြောင်းအရာများကို array များသို့ပြောင်းလဲရန်ပေါင်းစပ်ကြသည်။ XML ကို associative ခင်းကျင်းအဖြစ်ပြောင်းလဲစေသည့်ရိုးရှင်းသောခွဲခြမ်းစိတ်ဖြာလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။
function xml_to_array($xml_string) {
$parser = xml_parser_create();
xml_parse_into_struct($parser, $xml_string, $values, $index);
xml_parser_free($parser);
$result = [];
$stack = [];
foreach ($values as $val) {
switch ($val['type']) {
case 'open':
$tag = $val['tag'];
$child = [];
if (!empty($val['attributes'])) {
$child = $val['attributes'];
}
array_push($stack, [&$result, $tag]);
if (!isset($result[$tag])) {
$result[$tag] = [];
}
$result[$tag][] = $child;
break;
case 'complete':
$tag = $val['tag'];
$value = isset($val['value']) ? $val['value'] : '';
if (!isset($result[$tag])) {
$result[$tag] = [];
}
$result[$tag][] = $value;
break;
case 'close':
array_pop($stack);
break;
}
}
return $result;
}
မှတ်ချက် - အထက်ဖော်ပြပါကုဒ်သည်အသုံးပြုမှုကိုသရုပ်ပြရန်နှင့်ဖြစ်နိုင်ချေရှိသော XML ဖွဲ့စည်းတည်ဆောက်ပုံအားလုံးကိုထည့်သွင်းစဉ်းစားခြင်းမရှိပါ။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင် Simplexml သို့မဟုတ် Domdocumm ကဲ့သို့သောပိုမိုပြည့်စုံသောခွဲခြမ်းစိတ်ဖြာမှုပြုလုပ်ရန်အကြံပြုသည်။
Array ဖွဲ့စည်းပုံနှင့်အတူ JSON သို့ပြောင်းလဲခြင်းသည်အလွန်ရိုးရှင်းပါသည်, JSONS_CENDODED ကို သုံးပါ။
$parsed_array = xml_to_array($xml_data);
$json_result = json_encode($parsed_array, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo $json_result;
output ရလဒ်များကိုအကြမ်းအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည် -
{
"BOOK": [
{
"TITLE": "PHP Programming အလေ့အကျင့်",
"AUTHOR": "Zhang San",
"YEAR": "2021"
},
{
"TITLE": "နက်ရှိုင်းသောနားလည်မှု XML",
"AUTHOR": "li si",
"YEAR": "2020"
}
]
}
XML_PARSSESSESES သည် အခြေခံအားဖြင့်ထိန်းချုပ်မှုကိုပေးသော်လည်းရှုပ်ထွေးသော XML နှင့်ဆက်ဆံရာတွင်ခက်ခဲသောအခါခက်ခဲပုံရသည်။ PHP မှ Simplexml ကို အသုံးပြု. စဉ်းစားပါ။
$xml = simplexml_load_string($xml_data);
$json = json_encode($xml, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo $json;
ဤနည်းလမ်းသည်ရှင်းလင်းသောဖွဲ့စည်းပုံနှင့်အတူ XML အတွက်ပိုမိုရိုးရှင်းသောနှင့်ပိုမိုသင့်လျော်သည်။