XML_Parse function သည် XML ဒေတာများကိုတဖြည်းဖြည်းချင်းခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်စသည့်အဖြစ်အပျက်များကိုတဖြည်းဖြည်းခွဲခြားထားသည့်ဖြစ်ရပ်မှန်ဖြစ်ရပ်များနှင့်စသည့်အဖြစ်အပျက်များကိုဖြစ်ပေါ်စေသည်။
များသောအားဖြင့်မပိတ်နိုင်သောတံဆိပ်များသည်အောက်ပါအတိုင်းဖြစ်သည် -
tag ကိုပိတ်ရန်မေ့နေပါ ။ ဥပမာ, <tag> ကို ရေးပါ။
Closed tag tags : ဥပမာအားဖြင့် </ tag ရေးသားခြင်း </ tag ရေးသားခြင်း </ tag> ကိုအရေးယူခြင်းသည်အမှားအယွင်းများမကျေပွန်နိုင်ကြောင်း။
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 ကိုမပိတ်ထားပါကကွပ်မျက်ခံရသည့်အခါ။
ပျောက်ဆုံးနေသောပျောက်ဆုံးနေသောအမှတ်အသားများကိုကိုယ်တိုင်ဖြည့်စွက်ပါ ။
$xml_string = '<root><item>Item 1</item><item>Item 2</item></root>';
ယခု XML string သည်ပြီးဆုံးသွားပြီ ဖြစ်. ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းအမှားအယွင်းများမရှိပါ။
ပျောက်ဆုံးနေသော 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 မှတဆင့်သတ်သတ်မှတ်မှတ်အမှားမက်ဆေ့ခ်ျကိုပြန်ပို့လိမ့်မည်။
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 နာကိုဖြေရှင်းရန်ဤဆောင်းပါးသည်သင့်အားကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။