လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML_Parse ကို JSONTode သို့ပြောင်းရွှေ့နည်းဥပဒေကို JSON format ဖြင့်မည်သို့ပြောင်းလဲရမည်နည်း

XML_Parse ကို JSONTode သို့ပြောင်းရွှေ့နည်းဥပဒေကို JSON format ဖြင့်မည်သို့ပြောင်းလဲရမည်နည်း

M66 2025-04-24

PHP Development တွင် XML အချက်အလက်များသည်အထူးသဖြင့်အမွေအနှစ်စနစ်များကိုရှာဖွေခြင်းသို့မဟုတ်အချို့သော apis ကိုဖတ်ရှုသောအခါအထူးလိုအပ်ချက်တစ်ခုဖြစ်ပါသည်။ JSON သည်ယခုအခါ ပို. လူကြိုက်များသော်လည်း XML တွင်အချက်အလက်များစွာရှိနေသေးသည်။ ရှေ့တန်းပရိုဂရမ်ရေးဆွဲခြင်း (သို့) နောက်ဆက်တွဲအပြောင်းအလဲကိုလွယ်ကူချောမွေ့စေရန်ကျွန်ုပ်တို့သည် XML ကို JSON format သို့ပြောင်းလဲရန်လိုအပ်သည်။

ဤဆောင်းပါးတွင် PHP ၏ XML_PRYSSE function ကို XML ကြိုးများကိုခင်းကျင်းဖွဲ့စည်းပုံတစ်ခုသို့ခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုပါမည်

အဆင့် 1 - 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;

အဆင့် 2: XML ကို array ထဲထည့်ပါ

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 ကဲ့သို့သောပိုမိုပြည့်စုံသောခွဲခြမ်းစိတ်ဖြာမှုပြုလုပ်ရန်အကြံပြုသည်။

အဆင့် 3: JSONS format သို့ပြောင်းရန် JSONS_CENDEDEDE ကိုသုံးပါ

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"
        }
    ]
}

အဆင့်မြင့်အကြံပြုချက်များ - conversions လုပ်ဆောင်ရန် SimpendXML သို့မဟုတ် dom ကိုသုံးပါ

XML_PARSSESSESES သည် အခြေခံအားဖြင့်ထိန်းချုပ်မှုကိုပေးသော်လည်းရှုပ်ထွေးသော XML နှင့်ဆက်ဆံရာတွင်ခက်ခဲသောအခါခက်ခဲပုံရသည်။ PHP မှ Simplexml ကို အသုံးပြု. စဉ်းစားပါ။

 $xml = simplexml_load_string($xml_data);
$json = json_encode($xml, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo $json;

ဤနည်းလမ်းသည်ရှင်းလင်းသောဖွဲ့စည်းပုံနှင့်အတူ XML အတွက်ပိုမိုရိုးရှင်းသောနှင့်ပိုမိုသင့်လျော်သည်။

ဆက်စပ်အကြောင်းအရာ