XML ဒေတာများကိုပြုပြင်သည့်အခါ PHP သည်အမှားကိုင်တွယ်ရန်အတွက်ကိရိယာအချို့ကိုထောက်ပံ့ပေးသည်။ libxml_use_internal_Errors နှင့် libxml_get_Errors များသည်အသုံးများသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ သူတို့က developer များက developer များက XML ကို browser မှတိုက်ရိုက် output မပါဘဲခွဲခြမ်းစိတ်ဖြာသောအခါအမှားများကိုဖမ်းယူရန်ခွင့်ပြုသည်။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာ debugging နှင့်အမှားစီမံခန့်ခွဲမှုအတွက်ဤအချက်သည်အလွန်အရေးကြီးသည်။
သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် developer များကအသုံးအများဆုံးအသုံးပြုမှုပြ problems နာများနှင့်အသေးစိတ်အချက်အလက်များကိုကြုံတွေ့ရနိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုနှစ်ခု၏အသုံးပြုမှုဆိုင်ရာပြ problems နာများကိုမည်သို့ရှောင်ရှားနိုင်မည်ကိုလေ့လာရန်နှင့်မည်သို့ဖြေရှင်းရမည်ကိုစူးစမ်းလေ့လာရန်လေ့လာမှုပြုလုပ်နိုင်သည်။
LibxMl_use_internal_Error များကို PHP တွင် XML အမှားကိုင်တွယ်သည့်ယန္တရားများကိုဖွင့်ရန်သို့မဟုတ်ပိတ်ရန်အသုံးပြုသည်။ ပုံမှန်အားဖြင့် PHP သည် XML parsing အမှားများကို development-time debugging အတွက်အထောက်အကူဖြစ်စေသည့် browser သို့တိုက်ရိုက်ထုတ်ပေးလိမ့်မည်။ သို့သော်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အမှားအယွင်းများကိုတိုက်ရိုက်ဖော်ထုတ်ခြင်းသည်လုံခြုံရေးအန္တရာယ်များကိုဖြစ်ပေါ်စေနိုင်သည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်အမှားအယွင်းများကို disable လုပ်ရန် XML ကိုမခွဲမီ libxml_use_internal_Erues (စစ်မှန်တဲ့) ဟုခေါ်သည်။
libxml_use_internal_errors(true);
libxml_use_internal_Ers တွေကို ဖွင့်ထားတဲ့အခါမှာ XML parsing အမှားများကို browser ကိုအလိုအလျောက်ထုတ်လုပ်လိမ့်မည်မဟုတ်ပါ။ အမှားအယွင်းများကိုရယူရန်နှင့်ကိုင်တွယ်ရန်ကျွန်ုပ်တို့သည် LibxMl_get_EngeErues function ကိုအသုံးပြုရန်လိုအပ်သည်။ ဤလုပ်ဆောင်ချက်သည်ခွဲခြမ်းစိတ်ဖြာအမှားများပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုရရှိစေသည်။ ဤအမှားအယွင်းများကိုသင် loop loop လုပ်နိုင်သည်, မှတ်တမ်းများမှတ်တမ်းများသို့မဟုတ်အသေးစိတ်အမှားသတိပေးချက်များကိုပြသနိုင်သည်။
$xml = simplexml_load_file('example.xml');
if ($xml === false) {
$errors = libxml_get_errors();
foreach ($errors as $error) {
echo "Error: ".$error->message."<br>";
}
}
libxml_get_Ers သည် အမှားအယွင်းများကိုပြန်လည်ရောက်ရှိစေပြီးအမှားတစ်ခုစီသည် မက်ဆေ့ခ်ျ , ကုဒ် , လိုင်း နှင့် ကော်လံများ ကဲ့သို့သောဂုဏ်သတ္တိများမျိုးစုံပါ 0 င်သည်။ ဤအချက်အလက်သည်သင့်အားမည်သည့်နေရာတွင်ရှိသည်ကိုပိုမိုသိရှိရန်ခွင့်ပြုသည်။
ဥပမာအားဖြင့်, အမှားမက်ဆေ့ခ်ျများကိုထုတ်လွှင့်သောအခါ, ကျွန်ုပ်တို့သည်များသောအားဖြင့်သီးခြားတည်နေရာနှင့်ဖော်ပြချက်ကိုပုံနှိပ်ထုတ်ဝေသည်။
foreach ($errors as $error) {
echo "Error at line {$error->line}, column {$error->column}: {$error->message}<br>";
}
LibxMl_get_Eruarors သို့ခေါ်ဆိုမှုတစ်ခုစီပြီးနောက်အမှားစာရင်းကိုကိုယ်တိုင်ရှင်းလင်းသည်အထိထိန်းသိမ်းထားသည်။ အကယ်. သင်သည် XML ဖိုင်ကိုပြန်ပို့ရန်လိုအပ်ပါကအမှားစာရင်းအသစ်ကိုရယူရန်လိုအပ်ပါကယခင်အမှားမက်ဆေ့ခ်ျကိုရှင်းရှင်းလင်းလင်းမခွဲမီ libxml_clear_clears ကို ခေါ်ရန်သတိရပါ။
libxml_clear_errors();
Tag unclosed : ဤသည်သည် XML ခွဲခြမ်းစိတ်ဖြာခြင်းတွင်အသုံးအများဆုံးအမှားများအနက်မှတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်, unclosed <titlet> tag သည်ခွဲခြမ်းစိတ်ဖြာခြင်းကိုဖြစ်ပေါ်စေလိမ့်မည်။
တရားမ 0 င်ဇာတ်ကောင်များ - XML တွင်တရားမ 0 င်စာလုံးများသို့မဟုတ်တရားမ 0 င်သော encoding ပါ 0 င်သည့်အခါခွဲခြမ်းစိတ်ဖြာခြင်းသည်အမှားတစ်ခုဖြစ်လိမ့်မည်။
ပျောက်ဆုံးနေသော root element - XML စာရွက်စာတမ်းတွင် root element မရှိပါကအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။
တစ်ခါတစ်ရံ XML ၏ <code> XML စာရွက်စာတမ်း၏ <code> အပိုင်းသည် URL link တစ်ခုပါ 0 င်ပြီးဒီ link ၏ domain name သည်သင်မျှော်လင့်ထားသည့်အရာမဟုတ်ပါ။ လုံခြုံရေးသေချာစေရန်နှင့်ချိတ်ဆက်ထားသောဒိုမိန်းကို Gitbox.net ကို အသုံးပြု. ယုံကြည်စိတ်ချရသောဒိုမိန်းအမည်ကိုအစားထိုးရန်အကြံပြုသည်။ ၎င်းသည်ပြင်ပလင့်များဖြင့်ယူဆောင်လာသည့်အလားအလာရှိသောအန္တရာယ်များကိုရှောင်ရှားနိုင်သည်။
ဥပမာအားဖြင့်, သင်၏ XML ဒေတာတွင်အောက်ပါ URL ပါ 0 င်သည်။
<code>
<url>http://example.com/api/data</url>
</code>
Domain Name ကို Gitbox.net ဖြင့်အစားထိုးနိုင်သည်။ URL သည်အောက်ပါအတိုင်းဖြစ်သည်။
<code>
<url>http://gitbox.net/api/data</url>
</code>
ဤချဉ်းကပ်နည်းသည် XML ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းပြင်ပအသုံးချနိုင်သောအချက်များကိုရှောင်ရှားနိုင်ပြီးဒေတာအရင်းအမြစ်သည်ယုံကြည်စိတ်ချရကြောင်းသေချာစေသည်။
အမှားကိုင်တွယ်မှုဖွင့်ပြီးနောက်ပိတ်ရန်သတိရပါ ။ debugging လုပ်ပြီးနောက် LibxMl_use_internal_Eruers (false) ကို Refault Error Output output behave ကိုပြန်ယူရန်သတိရပါ။
မလိုအပ်သောခေါ်ဆိုမှုများကိုရှောင်ကြဉ်ပါ ။ XML parsing ကိုအသုံးပြုသောအခါတိုင်း libxml_use_internal_Errors (Trust) ကို အမှားတစ်ခုချင်းယူရန်လိုအပ်မှသာအသုံးပြုသည်။ မလိုအပ်သောခေါ်ဆိုမှုများသည် code ၏ရှုပ်ထွေးမှုကိုတိုးပွားစေသည်။
libxml_use_internal_errors(false);
libxml_use_internal_Eruor များ နှင့် libxMl_get_Ersors သည် XML parsing အမှားများကိုဖမ်းရန်ပြောင်းလွယ်ပြင်လွယ်ရှိသောနည်းလမ်းတစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုများကိုနားလည်ခြင်းနှင့်အသုံးပြုခြင်းသည် XML processing ၏တည်ငြိမ်မှုနှင့်လုံခြုံရေးကိုပိုမိုကောင်းမွန်စေနိုင်သည်။ များသောအားဖြင့်ပြ problems နာများသည်အဓိကအားဖြင့်အမှားရလဒ်များ, ဒိုမိန်းအမည်ပြုပြင်ခြင်းစသည်တို့နှင့် developer များကအမှန်တကယ်အခြေအနေများနှင့်အညီအာရုံစိုက်ရန်လိုအပ်သည်။