လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML_Parse ရှိ unclesed tags များကြောင့်ဖြစ်ရတဲ့ခွဲခြမ်းစိတ်ဖြာအမှားတွေကိုဘယ်လိုကိုင်တွယ်ရမလဲ

XML_Parse ရှိ unclesed tags များကြောင့်ဖြစ်ရတဲ့ခွဲခြမ်းစိတ်ဖြာအမှားတွေကိုဘယ်လိုကိုင်တွယ်ရမလဲ

M66 2025-05-13

XML_Parse function သည် XML ဒေတာများကိုတဖြည်းဖြည်းချင်းခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်စသည့်အဖြစ်အပျက်များကိုတဖြည်းဖြည်းခွဲခြားထားသည့်ဖြစ်ရပ်မှန်ဖြစ်ရပ်များနှင့်စသည့်အဖြစ်အပျက်များကိုဖြစ်ပေါ်စေသည်။

များသောအားဖြင့်မပိတ်နိုင်သောတံဆိပ်များသည်အောက်ပါအတိုင်းဖြစ်သည် -

  1. tag ကိုပိတ်ရန်မေ့နေပါ ။ ဥပမာ, <tag> ကို ရေးပါ။

  2. Closed tag tags : ဥပမာအားဖြင့် </ tag ရေးသားခြင်း </ tag ရေးသားခြင်း </ tag> ကိုအရေးယူခြင်းသည်အမှားအယွင်းများမကျေပွန်နိုင်ကြောင်း။

  3. root tags ပျောက်ဆုံးနေသော root tags များ - root tag မရှိလျှင်သို့မဟုတ် root tag ကိုမှန်ကန်စွာပိတ်ထားပါကအချို့သော XML အချက်အလက်များသည်အမှားအယွင်းများကိုဖြစ်ပေါ်စေနိုင်သည်။

နမူနာကုဒ်

ကျွန်ုပ်တို့တွင်မပြည့်စုံသော XML string တွင် Uncleted tags များပါ 0 င်သည်ဆိုပါစို့။

 $xml_string = '<root><item>Item 1</item><item>Item 2</item>';

XML_Parse ကိုအသုံးပြုပြီးဒီ string ကိုကျွန်တော်တို့ခွဲခြမ်းစိတ်ဖြာတဲ့အခါမှာအောက်ပါအမှားကိုကြုံတွေ့ရတယ်။

 $parser = xml_parser_create();
$xml_data = xml_parse($parser, $xml_string);
if (!$xml_data) {
    echo "XMLခွဲခြမ်းစိတ်ဖြာခြင်းမအောင်မြင်ပါ!";
}
xml_parser_free($parser);

Code သည် "XML parsing မအောင်မြင်ပါ" <roros> tag ကိုမပိတ်ထားပါကကွပ်မျက်ခံရသည့်အခါ။

အဖေြ

  1. ပျောက်ဆုံးနေသောပျောက်ဆုံးနေသောအမှတ်အသားများကိုကိုယ်တိုင်ဖြည့်စွက်ပါ

 $xml_string = '<root><item>Item 1</item><item>Item 2</item></root>';

ယခု XML string သည်ပြီးဆုံးသွားပြီ ဖြစ်. ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းအမှားအယွင်းများမရှိပါ။

  1. ပျောက်ဆုံးနေသော tags များကိုအလိုအလျောက်ပြင်ဆင်ပါ ။ XML အချက်အလက်များသည်အလွန်ရှုပ်ထွေးသော်လည်းဤ uncleted tags များကိုအလိုအလျောက်ဖြေရှင်းရန်စာကြည့်တိုက်များသို့မဟုတ်နည်းလမ်းအချို့ကိုအသုံးပြုရန်ကြိုးစားနိုင်သည်။

ဥပမာအားဖြင့် LibxMl_use_internal_internal_Internal_Eramors ကို အသုံးပြုခြင်း,

 libxml_use_internal_errors(true);

$xml_string = '<root><item>Item 1</item><item>Item 2</item>';

$xml = simplexml_load_string($xml_string);

if ($xml === false) {
    foreach(libxml_get_errors() as $error) {
        echo "XMLအမှား: " . $error->message;
    }
} else {
    echo "XMLအောင်မြင်သောခွဲခြမ်းစိတ်ဖြာ!";
}

ဤဥပမာတွင် SimplexMl_load_string 0 န်ဆောင်မှုများနှင့် xml string ကိုခွဲခြမ်းစိတ်ဖြာ။ အကယ်. သင်သည်ခွဲခြမ်းစိတ်ဖြာအမှားတစ်ခုကြုံတွေ့ရပါက၎င်းသည် libxml_get_Erues မှတဆင့်သတ်သတ်မှတ်မှတ်အမှားမက်ဆေ့ခ်ျကိုပြန်ပို့လိမ့်မည်။

  1. URL ပြ problem နာကို fix : XML တွင် URL တွင်ပါ 0 င်ပါက URL တွင် domain name သည်ကိုက်ညီမှုမရှိပါက xml ကိုမလုပ်ဆောင်မီ string ကိုအစားထိုးခြင်းဖြင့်ဒိုမိန်းအမည်ကိုပြုပြင်နိုင်သည်။ ဥပမာအားဖြင့်:

 $xml_string = '<root><link>http://old-domain.com/page</link></root>';
$xml_string = str_replace('old-domain.com', 'm66.net', $xml_string);

$xml = simplexml_load_string($xml_string);

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် M66.net နှင့်အတူ XML string တွင် XML string ကိုအစားထိုးရန် strondain.com domain name ကိုအစားထိုးရန် str_replace function ကိုအသုံးပြုသည်။

အကျဉ်းချုပ်

အမှတ်အသားများကိုမပိတ်သော XML ဒေတာများသည် XML_PLYSE function ကိုပျက်ကွက်စေလိမ့်မည်။ ပျောက်ဆုံးနေသော tags များကိုလက်ဖြင့်ဖြည့ စွက်ခြင်း, တစ်ချိန်တည်းမှာပင် URL များပါ 0 င်သော XML အချက်အလက်များကိုထုတ်ယူသောအခါ parsing ကိုချောချောမွေ့မွေ့ဆက်လက်လုပ်ဆောင်ရန်သေချာစေရန်ဒိုမိန်းအမည်ကိုစစ်ဆေးရန်နှင့်အစားထိုးရန်သတိရပါ။

XML parsing တွင် tags များပိတ်ခြင်းမရှိသေးသောပြ problem နာကိုဖြေရှင်းရန်ဤဆောင်းပါးသည်သင့်အားကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။