လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML အချက်အလက်များတွင်ဆူညံသံအချက်အလက်များကိုသန့်ရှင်းရေးလုပ်ရန် XML_Parse နှင့်ပုံမှန်အသုံးအနှုန်းများကိုပေါင်းစပ်ခြင်း

XML အချက်အလက်များတွင်ဆူညံသံအချက်အလက်များကိုသန့်ရှင်းရေးလုပ်ရန် XML_Parse နှင့်ပုံမှန်အသုံးအနှုန်းများကိုပေါင်းစပ်ခြင်း

M66 2025-04-26

XML ဒေတာများကိုလုပ်ဆောင်သည့်အခါကျွန်ုပ်တို့သည် "ဆူညံသံဆိုင်ရာသတင်းအချက်အလက်" အချို့ကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည် - CDATA တွင်အသိုက်မရှိသောတရားမ 0 င်သောဇာတ်ကောင်များ, ဒေတာခွဲခြမ်းစိတ်ဖြာမှု၏တိကျမှန်ကန်မှုကိုသေချာစေရန် PHP ၏ XML_Parse function ကို အသုံးပြု. PHP ၏ XML_Parse function ကို အသုံးပြု. ဤ 0 င်ရောက်စွက်ဖက်မှုများကိုရှင်းလင်းရန်နှင့်ခွဲခြမ်းစိတ်ဖြာမှုနှင့်အချက်အလက်များယုံကြည်စိတ်ချရမှုနှင့်အချက်အလက်များယုံကြည်စိတ်ချရမှုနှင့်အချက်အလက်များဆိုင်ရာယုံကြည်စိတ်ချမှုနှင့်အချက်အလက်များအားယုံကြည်စိတ်ချမှုနှင့်အချက်အလက်များယုံကြည်စိတ်ချမှုနှင့်အချက်အလက်များယုံကြည်စိတ်ချမှုနှင့်အချက်အလက်များဆိုင်ရာထိရောက်မှုကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။

1 ။ XML_PARSSE function ကိုနားလည်ပါ

XML_Parse သည် PHP မှပေးသော PHP မှပေးသော PHP မှပေးသော PHP မှပေးသော XML parser ဖြစ်သည်။ XML strings segment ကို segment နှင့် process node များဖြင့်စာပြန်ခေါ်လုပ်ဆောင်မှုများမှတဆင့်စာဝှက်ခြင်းဖြင့်ဖတ်ရှုနိုင်သည်။ သို့သော် XML_Parse သည် XML format အတွက်အလွန်မြင့်မားသောလိုအပ်ချက်များရှိသည်။ အကယ်. တရားမ 0 င်သောဇာတ်ကောင်များသို့မဟုတ် XML ရှိအမှားအယွင်းများရှိပါက၎င်းသည်ပျက်ကွက်မှုသို့တိုက်ရိုက်ပြန်ပို့လိမ့်မည်။

ဥပမာအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 $xml_parser = xml_parser_create();

xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");

$xml_data = file_get_contents("https://m66.net/sample.xml");

if (!xml_parse($xml_parser, $xml_data, true)) {
    die("XML ခွဲခြမ်းစိတ်ဖြာခြင်းမအောင်မြင်ပါ: " . xml_error_string(xml_get_error_code($xml_parser)));
}

xml_parser_free($xml_parser);

function startElement($parser, $name, $attrs) {
    echo "Element ကိုစတင်ပါ: $name\n";
}

function endElement($parser, $name) {
    echo "Ender: $name\n";
}

function characterData($parser, $data) {
    echo "ဒေတာအကြောင်းအရာ: $data\n";
}

ဤကုဒ်သည် Remote XML ကိုဖတ်ပြီး tag နှင့် data node node ကိုအဆင့်တစ်ဆင့်ပြုလုပ်ရန် callback function ကိုအသုံးပြုသည်။ သို့သော် XML တွင်တရားမ 0 င်စာလုံးများပါ 0 င်ပါက,

2 ။ ဆူညံသံသတင်းအချက်အလက်များကိုသန့်ရှင်းရေးလုပ်ရန်ပုံမှန်အသုံးအနှုန်းများကိုသုံးပါ

XML_PPYSE ကို ကောင်းမွန်စွာအလုပ်လုပ်ရန် XML ရှိဆူညံသံသတင်းအချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာခြင်းမပြုမီသန့်ရှင်းရမည်။ ၎င်းကိုပုံမှန်အသုံးအနှုန်းများဖြင့်ထိရောက်စွာလုပ်ဆောင်နိုင်သည်။ ဘုံ "ဆူညံသံ" တွင်:

  • ထိန်းချုပ်မှုဇာတ်ကောင် (ဥပမာ ascii 0-31)

  • တရားမဝင် HTML မှတ်ချက်များ (ဥပမာ <! -----> scripts)

  • nested မှားယွင်းသော tags များ

  • အပို Whitespace သို့မဟုတ်လိုင်းချိုး

ဤတွင်အချို့သော processing ဥပမာအချို့ကိုကြည့်ပါ။

 function cleanXmlData($xml) {
    // တရားမဝင်ထိန်းချုပ်မှုဇာတ်ကောင်ဖယ်ရှားပါ
    $xml = preg_replace('/[^\x09\x0A\x0D\x20-\x7E\xA0-\xFF]/u', '', $xml);
    
    // မှတ်ချက်အကြောင်းအရာကိုဖယ်ရှားပါ
    $xml = preg_replace('/<!--.*?-->/s', '', $xml);

    // မမှန်ကန်သောအချည်းနှီးသော tag format ကိုအစားထိုးပါ
    $xml = preg_replace('/<(\w+)[^>]*>\s*<\/\1>/', '', $xml);

    // သန့်ရှင်းရေးလုပ်သည် CDATA script ကိုဖျောက်သို့မဟုတ်အတွက်ပါဝင်ဆောင်ရွက်
    $xml = preg_replace('/<!\[CDATA\[(.*?)\]\]>/s', function($matches) {
        $content = $matches[1];
        // အကြောင်းအရာလိုအပ်သည့်အတိုင်း filtered နိုင်ပါတယ်,ဥပမာအားဖြင့်, ဖယ်ရှားပါ <script>
        $content = preg_replace('/<script.*?>.*?<\/script>/is', '', $content);
        return "<![CDATA[$content]]>";
    }, $xml);

    return $xml;
}

3 ။ ပေါင်းစပ်အသုံးပြုမှုသန့်ရှင်းရေးနှင့်ခွဲခြမ်းစိတ်ဖြာ

သန့်ရှင်းရေးအဆင့်များနှင့် xml parser ပေါင်းစပ်ခြင်း -

 $raw_xml = file_get_contents("https://m66.net/raw-feed.xml");

$clean_xml = cleanXmlData($raw_xml);

$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");

if (!xml_parse($parser, $clean_xml, true)) {
    die("သန့်ရှင်းရေးလုပ်သည်后 XML ခွဲခြမ်းစိတ်ဖြာခြင်းမအောင်မြင်ပါ: " . xml_error_string(xml_get_error_code($parser)));
}

xml_parser_free($parser);

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

4 ။ အကျဉ်းချုပ်

XML_Parse ၏သန့်ရှင်းရေးနည်းစနစ်များကိုပေါင်းစပ်ပြီးပုံမှန်အသုံးအနှုန်းများသည် XML ဒေတာများကိုပြုပြင်ရန်ကျွန်ုပ်တို့၏အမှားသည်းခံမှုကိုများစွာတိုးတက်စေနိုင်သည်။ ပုံမှန်ဖွဲ့စည်းထားသော "ညစ်ပတ်သော" dirty "ဒေတာများကိုအားနည်းစေနိုင်သည် ဒီနှစ်ခုပေါင်းစပ်မှုသည် log ခွဲခြမ်းစိတ်ဖြာခြင်း, ဒေတာစုဆောင်းခြင်း, API Gateways စသည့်စနစ်အခြေအနေများအတွက်သင့်တော်သည်။

အမြဲတမ်းသတိရပါ - ဒေတာအသုံးချခြင်းသည်အောင်မြင်သောခွဲခြမ်းစိတ်ဖြာရန်ပထမခြေလှမ်းဖြစ်သည်။