PHP တွင် XML ဖိုင်များကိုထုတ်ယူသောအခါအထူးသဖြင့် XML သည်မပြည့်စုံသောသို့မဟုတ်မမှန်ကန်ပါကမမှန်မကန်ဖြစ်သည့်အခါခွဲခြမ်းစိတ်ဖြာခြင်းအမှားများကိုမကြာခဏတွေ့ရသည်။ ပုံမှန်အားဖြင့် LibxMl extension သည်အမှားအယွင်းများကိုဖြည့်ဆည်းပေးနိုင်သည့်သို့မဟုတ်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုပြန့်စွာဖြစ်ပေါ်စေနိုင်သည်။ ဤအမှားများကိုလျောက်ပတ်စွာဖမ်းရန် PHP သည် LibxMl_use_internal_Internal_Errors function ကိုထောက်ပံ့ပေးသည်။ ၎င်းသည်အမှားအယွင်းများကိုစုဆောင်းရန်နှင့်တိုက်ရိုက် output ကိုရှောင်ရှားရန်ခွင့်ပြုသည်
ဤဆောင်းပါးသည် LibxMl_use_internal_Enters ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြပြီးအမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် XML parsing အမှားများကိုမည်သို့ကိုင်တွယ်ရမည်ကိုပြသရန်နမူနာကုဒ်ကိုပေါင်းစပ်ပါ။
LibxMl_use_internal_Errors သည် PHP တွင် function တစ်ခုဖြစ်သည်။ Enabled ပြီးနောက် LibXML သည်အမှားအယွင်းများကိုတိုက်ရိုက်ထုတ်ယူလိမ့်မည်မဟုတ်ပါ, သို့သော်အမှားအချက်အလက်များကိုသိမ်းဆည်းလိမ့်မည်။ ပရိုဂရမ်သည်အခြားလုပ်ဆောင်မှုများကိုလုပ်ဆောင်ရန်အတွက်ဤအမှားများကိုရယူနိုင်သည်။
function ရှေ့ပြေးပုံစံ:
bool libxml_use_internal_errors ([ bool $use_errors = true ] )
Parameter $ use_errors : အတွင်းပိုင်းအမှားကိုင်တွယ်မှုကိုဖွင့ ် ရန်ဖြစ်စေ,
ပြန်လာတန်ဖိုး - မခေါ်မီအမှားအယွင်းရှိအမှားအယွင်း (boolean value) အမှားအယွင်းရှိသည်။
ပုံမှန်အားဖြင့် XML ခွဲခြမ်းစိတ်ဖြာမှုမအောင်မြင်ပါကအမှားကိုတိုက်ရိုက်ပုံနှိပ်ထုတ်ဝေမည်, ၎င်းသည်စာမျက်နှာအပြင်အဆင်ကိုပျက်စီးစေပြီးအမှားအယွင်းများအပေါ်တွင်မထိန်းချုပ်နိုင်ပါ။
libxml_use_internal_errors (true) ကိုအသုံးပြုပြီးနောက် parsing အမှားများသည်တိုက်ရိုက်ထုတ်လွှင့်မည်မဟုတ်သော်လည်းသိုလှောင်ထားလိမ့်မည်။ အမှားစာရင်းကို LibxMl_get_Ergors () နှင့်ပုံစံများကိုရနိုင်သည်။
အောက်ပါဥပမာသည် XML ကြိုးများကိုခွဲထုတ်ရန် LibxMl_use_internal_Eruers များကို မည်သို့အသုံးပြုရမည်ကိုပြသသည်။
<?php
// စွမ်းဆောင်နိုင်စေ libxml အတွင်းပိုင်းအမှားကိုင်တွယ်
libxml_use_internal_errors(true);
// ခွဲခြမ်းစိတ်ဖြာခံရဖို့ XML ကြိုး(မှားယွင်းစွာရေးသားခဲ့သည်)
$xmlString = <<<XML
<root>
<item>Example</item
</root>
XML;
// အသစ်တစ်ခုကိုဖန်တီးပါ DOMDocument ကန့်ကွက်
$doc = new DOMDocument();
// တင်ရန်ကြိုးစားပါ XML ကြိုး
if (!$doc->loadXML($xmlString)) {
echo "XML ခွဲခြမ်းစိတ်ဖြာခြင်းမအောင်မြင်ပါ,အမှားမက်ဆေ့ခ်ျကိုအောက်ပါအတိုင်းဖြစ်ပါတယ်:<br>";
// Get နှင့် Travers
$errors = libxml_get_errors();
foreach ($errors as $error) {
echo displayLibxmlError($error);
}
// ရှင်းလင်းသောအမှား cache ကို
libxml_clear_errors();
} else {
echo "XML အောင်မြင်သောခွဲခြမ်းစိတ်ဖြာ!";
}
/**
* ပုံစံနှင့်ပြသခြင်း libxml အမှားသတင်းစကား
*
* @param LibXMLError $error
* @return string
*/
function displayLibxmlError($error) {
$return = "<br>";
switch ($error->level) {
case LIBXML_ERR_WARNING:
$return .= "Warning $error->code: ";
break;
case LIBXML_ERR_ERROR:
$return .= "Error $error->code: ";
break;
case LIBXML_ERR_FATAL:
$return .= "Fatal Error $error->code: ";
break;
}
$return .= trim($error->message);
$return .= " on line $error->line";
return $return;
}
?>
အထက်ပါကုဒ်၌:
အမှားစုဆောင်းမှုကို enable လုပ်ရန် libxml_use_internal_Erues (true) ကို သုံးပါ။
DomDocument :: loadxml နှင့်အတူ XML ကိုတင်ပါ။ အကယ်. မအောင်မြင်ပါကအမှားတစ်ခုရရန် LibxMl_get_Erues ကို ဖုန်းဆက်ပါ။
Custom function displibxmlerror မှတဆင့် format နှင့် output error error error ။
ခွဲခြမ်းစိတ်ဖြာပြီးနောက် libxml_clear_Erclear_ErueRors () အမှားကြားခံကိုရှင်းလင်းရန် () ကိုခေါ်ပါ။
အမှန်တကယ်စီမံကိန်းများတွင် XML ကိုအများအားဖြင့်ဖိုင်များမှဖတ်ရှုပြီးသင်အလားတူနည်းလမ်းများကိုသုံးနိုင်သည်။
<?php
libxml_use_internal_errors(true);
$xmlFile = 'https://gitbox.net/example.xml';
$doc = new DOMDocument();
if (!$doc->load($xmlFile)) {
echo "ဝန်တင် XML ဖိုင်မအောင်မြင်ပါ,အမှားအယွင်းများသည်အောက်ပါအတိုင်းဖြစ်သည်:<br>";
foreach (libxml_get_errors() as $error) {
echo displayLibxmlError($error);
}
libxml_clear_errors();
} else {
echo "XML 文件ဝန်တင်成功。";
}
function displayLibxmlError($error) {
$return = "<br>";
switch ($error->level) {
case LIBXML_ERR_WARNING:
$return .= "Warning $error->code: ";
break;
case LIBXML_ERR_ERROR:
$return .= "Error $error->code: ";
break;
case LIBXML_ERR_FATAL:
$return .= "Fatal Error $error->code: ";
break;
}
$return .= trim($error->message);
$return .= " on line $error->line";
return $return;
}
?>
ဤနေရာတွင်လိုအပ်ချက်များနှင့်ကိုက်ညီသော Gitbox.net နှင့်အတူနမူနာ URL ရှိဒိုမိန်းအမည်ကိုအစားထိုးပါ။
libxml_use_internal_Errors (True) သည် XML parsing အမှားများကိုဖမ်းရန်သော့ချက်ဖြစ်သည်။
၎င်းသည်အမှားအယွင်းများကိုတိုက်ရိုက်ထုတ်လွှင့်ခြင်းကိုရှောင်ရှားနိုင်ပြီးပရိုဂရမ်ထိန်းချုပ်မှုနှင့်သစ်ထုတ်လုပ်ရေးအတွက်အဆင်ပြေစေသည်။
LibxMl_get_Ergets () နှင့် libxml_cllear_clear_clears () ကိုထိရောက်စွာစီမံနိုင်သည်။
XML ကိုကြိုးများ, ဖိုင်များသို့မဟုတ်ဝေးလံခေါင်သီလိပ်စာများမှတင်ထားသည့်နေရာအမျိုးမျိုးအတွက်သင့်တော်သည်။
ဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းသည် developer များပိုမိုခိုင်မာသည့်နှင့်ဖော်ရွေ XML processing code များကိုရေးရန်ကူညီနိုင်သည်။