XML သည်အချက်အလက်များကိုရိုးရှင်းသောစာသားဖွဲ့စည်းပုံတွင်သိုလှောင်ထားသည့်ကျယ်ပြန့်စွာအသုံးပြုသောအချက်အလက်ပုံစံဖြစ်သည်။ အထူးသဖြင့်ဝဘ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်လျှောက်လွှာများစွာအတွက်သင့်တော်သည်။ သို့သော် PHP နှင့်အတူ XML အချက်အလက်များကိုဝေငှသောအခါကျွန်ုပ်တို့သည် persing လုပ်ငန်းစဉ်အတွင်းအမှားအယွင်းများကိုကြုံတွေ့ရပြီးအစီအစဉ်ကိုပျက်ကျရန်သို့မဟုတ်မျှော်လင့်ချက်များနှင့်မကိုက်ညီပါ။ ထို့ကြောင့် XML_PICSSSE function ကိုအသုံးပြုသည့်အခါအမှားအယွင်းများကိုထိရောက်စွာကိုင်တွယ်နိုင်ရန်အလွန်အရေးကြီးသည်။
XML_Parse ကို အသုံးပြုသည့်အခါ XML parsing အမှားများကိုဖမ်းယူရန်နှင့်ကိုင်တွယ်ရန်အမှားကိုင်တွယ်သည့်ယန္တရားကိုမည်သို့ကျင့်သုံးရမည်ကိုဤဆောင်းပါးကရှင်းပြပါမည်။
XML_PARSESE သည် PHP တွင် XML ဒေတာကိုခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းသည် parameterser နှစ်ခုကိုလက်ခံသည်။ XMlParser ( XML_Parser_create ) နှင့် XML ဒေတာ string ကိုပြုလုပ်သည်။ ဤလုပ်ဆောင်ချက်သည် XML ဒေတာများကို pareses နှင့်ခွဲခြမ်းစိတ်ဖြာအောင်မြင်မှုရှိမရှိညွှန်ပြနေသော boolean value ကိုပြန်ပို့သည်။
$parser = xml_parser_create();
$data = "<root><item>Some data</item></root>";
if (xml_parse($parser, $data, true) === false) {
echo "XML အမှားခွဲခြမ်းစိတ်ဖြာခြင်း: " . xml_error_string(xml_get_error_code($parser));
} else {
echo "XML အောင်မြင်စွာ parsing ဒေတာ!";
}
xml_parser_free($parser);
XML_Parse ကိုယ်တိုင်ကခြွင်းချက်များ (သို့) အမှားအယွင်းများ ကိုတိုက်ရိုက်မပစ်ပါ, အမှားကိုဖမ်းရန်နှင့်၎င်းကိုကိုင်တွယ်ရန်ကျွန်ုပ်တို့သည်အသေးစိတ်အမှားအချက်အလက်များရရန်အမှားကုဒ်ကိုအသုံးပြုရန်လိုအပ်သည်။
XML_Parse parsing မအောင်မြင်ပါကအမှားကုဒ်နှင့်သက်ဆိုင်ရာအမှားအယွင်းများရရှိရန် XML_GEge_Error_code () နှင့် XML_ERROROR_STRENDE () ကို သုံးနိုင်သည်။
$parser = xml_parser_create();
$data = "<root><item>Some data</item>"; // ရည်ရွယ်ချက်ရှိရှိပိတ်
if (xml_parse($parser, $data, true) === false) {
$error_code = xml_get_error_code($parser);
$error_message = xml_error_string($error_code);
echo "XML အမှားခွဲခြမ်းစိတ်ဖြာခြင်း,အမှားကုဒ်: $error_code,အမှားသတင်းစကား: $error_message";
} else {
echo "XML အောင်မြင်စွာ parsing ဒေတာ!";
}
xml_parser_free($parser);
ရလဒ်ဥပမာ:
XML အမှားခွဲခြမ်းစိတ်ဖြာခြင်း,အမှားကုဒ်: 12,အမှားသတင်းစကား: syntax error
XML ခွဲခြမ်းစိတ်ဖြာနေစဉ်အတွင်း PHP သည် XML_SET_ERROR_Handler မှတဆင့် PHP သည် Custom error dunction function ကိုပြုလုပ်ရန် PHP ကသင့်အားခွင့်ပြုရန်ခွင့်ပြုသည်။ ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းအမှားတစ်ခုဖြစ်ပွားသည့်အခါ function ကိုခေါ်သည်။
function custom_error_handler($error_code, $error_message, $error_line, $error_column) {
echo "စိတ်ကြိုက်အမှားကိုင်တွယ်:\n";
echo "အမှားကုဒ်: $error_code\n";
echo "အမှားသတင်းစကား: $error_message\n";
echo "အမှားတည်နေရာ: အိုကေ $error_line, စာရင်း $error_column\n";
}
$parser = xml_parser_create();
$data = "<root><item>Some data</item>"; // ရည်ရွယ်ချက်ရှိရှိပိတ်
xml_set_error_handler($parser, 'custom_error_handler');
if (xml_parse($parser, $data, true) === false) {
// အမှား已通过စိတ်ကြိုက်အမှားကိုင်တွယ်函数输出
}
xml_parser_free($parser);
Error Code : XML parsing အမှားတစ်ခုစီသည်သက်ဆိုင်ရာအမှားကုဒ်ရှိသည်။ ဥပမာအားဖြင့် 12 ဘုံ syntax အမှားတစ်ခုဖြစ်သည်။
Error Message - Syntax အမှား ကဲ့သို့သောအမှားကုဒ်နှင့်သက်ဆိုင်သောဖော်ပြချက်အချက်အလက်များ။
အမှားအယွင်းများနှင့်ကော်လံများ - ပြ the နာကိုရှာဖွေရန်အမှားတွင်ဖြစ်ပေါ်သော XML ဒေတာ၏ Row နှင့် Column နံပါတ်များကိုဖော်ပြထားသည်။
သင်သည် XML ဒေတာဖိုင်တစ်ခုတွင်အလုပ်လုပ်နေပြီးအချက်အလက်များတွင်အမှားများရှိနိုင်သည်ဆိုပါစို့။ အထက်ဖော်ပြပါအမှားကိုင်တွယ်သည့်ယန္တရားများကိုပေါင်းစပ်ခြင်းဖြင့်ဤအမှားများကိုသင်ရှာဖွေတွေ့ရှိနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် URL data url data url data url data ကိုယူပြီးခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းအမှားကိုကိုင်တွယ်ပါ။
$url = 'https://m66.net/data.xml';
$xml_data = file_get_contents($url);
$parser = xml_parser_create();
xml_set_error_handler($parser, 'custom_error_handler');
if (xml_parse($parser, $xml_data, true) === false) {
// အမှား已通过စိတ်ကြိုက်အမှားကိုင်တွယ်函数输出
// သငျသညျဒေတာကိုပြုပြင်ရန်ရွေးချယ်နိုင်သည်,သို့မဟုတ်အသုံးပြုသူများကိုသတိပေးပါ
}
xml_parser_free($parser);
XML_Parse ကိုအသုံးပြုပြီး PHP သည် XML အမှားအယွင်းများကိုပိုမိုအဆင်ပြေစွာကိုင်တွယ်နိုင်သည့် libxml extension ကိုလည်းပေးသည်။ LibXML သည် အမှားအယွင်းများကိုဖမ်းရန်ပိုမိုပြောင်းလွယ်ပြင်လွယ်သည့်နည်းလမ်းများပိုမိုများပြားလာသည်။ အကယ်. သင်ပိုမိုရှုပ်ထွေးသော XML parsing လုပ်ဆောင်ချက်များကိုလိုအပ်ပါက LibxMl ကို အသုံးပြုရန်အကြံပြုသည်။
libxml_use_internal_errors(true);
$xml = simplexml_load_file('https://m66.net/data.xml');
if ($xml === false) {
echo "ဝန်တင် XML အမှား:\n";
foreach(libxml_get_errors() as $error) {
echo "အမှား: " . $error->message . "\n";
}
} else {
echo "XML 数据ဝန်တင်成功!";
}
XML ခွဲခြမ်းစိတ်ဖြာခြင်းတွင်အမှားအယွင်းများသည်မလွှဲမရှောင်သာဖြစ်သည်။ ထို့ကြောင့်ကျိုးကြောင်းဆီလျော်သောအမှားကိုင်တွယ်မှုယန္တရားသည်မရှိမဖြစ်လိုအပ်သည်။ PHP မှပေးသော XML_Parse function ကိုအသုံးပြုသောအခါ Return Value ကိုစစ်ဆေးခြင်း, အမှားကုဒ်များကိုရယူခြင်းနှင့်ဓလေ့ထုံးတမ်းအမှားများကိုစစ်ဆေးခြင်းအားဖြင့်ပရိုဂရမ်တည်ငြိမ်မှုနှင့်ထိန်းသိမ်းမှုကိုသေချာစေနိုင်သည်။ အကယ်. သင်သည်ပိုမိုအစွမ်းထက်သောအမှားကိုင်တွယ်မှုနှင့်ကြွယ်ဝသောအင်္ဂါရပ်များကိုပိုမိုလိုအပ်ပါက LibXML ကို သုံး. စဉ်းစားနိုင်သည်။
XML parsing အမှားများကိုမှန်ကန်စွာဖမ်းယူခြင်းနှင့်ကိုင်တွယ်ခြင်းအားဖြင့်သင်၏ပရိုဂရမ်များကိုပိုမိုထိရောက်စွာဖြည့်ဆည်းပေးနိုင်ပြီး XML ခွဲခြမ်းစိတ်ဖြာမှုများကြောင့်မမျှော်လင့်သောပျက်ကျမှုကိုရှောင်ရှားနိုင်သည်။