PHP တွင် XML အချက်အလက်များကိုထုတ်လုပ်သည့်အခါ XML string ကို XML_Parse function ကို အသုံးပြု. ခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ သို့သော် XML ဖိုင်များသည်မှားယွင်းသောအမှတ်အသားများသို့မဟုတ်ဇာတ်ကောင် encoding အမှားများကဲ့သို့သော formating ပြ problems နာများရှိသည်။ ၎င်းသည်မအောင်မြင်မှုများကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤအမှားများကိုကြည့်ရှုရန်နှင့်ကိုင်တွယ်ရန် Xml_parse , XML_Anget_error_code , XML_ERRORROR_STRORTRING, XML_ERRORR_CRETRINGSA နှင့် XML_ERGORT_CURRENT_LINE_NAMERS_NAMERS ကဲ့သို့သောလုပ်ဆောင်မှုများကိုအသုံးပြုနိုင်သည်။
XML parsing အမှားများကိုရှာဖွေရန်နှင့်အစီရင်ခံရန်ဤလုပ်ငန်းဆောင်တာများကိုမည်သို့အသုံးပြုရမည်ကိုအပြည့်အဝကြည့်ရှုကြရအောင်။
<?php
// အမှားတစ်ခုပုံဖော်ပါ XML ကြိုး(ပျောက်ဆုံးနေသောတံခါးပိတ်)
$xmlData = <<<XML
<note>
<to>အသုံးပြုသူ</to>
<from>အုပ်ချုပ်သူ</from>
<heading>သတိပေး</heading>
<body>ဒါကစမ်းသပ်မှုသတင်းစကားပါ
</note>
XML;
// ဖန်တီး XML မိစ်ဆာ
$parser = xml_parser_create();
// 设置မိစ်ဆာ选项
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); // Label Case ကိုသိမ်းထားပါ
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); // whitespace ဇာတ်ကောင်လျစ်လျူရှု
// ခွဲခြမ်းစိတ်ဖြာရန်ကြိုးစားပါ XML အချက်များ
if (!xml_parse($parser, $xmlData, true)) {
$errorCode = xml_get_error_code($parser);
$errorMessage = xml_error_string($errorCode);
$lineNumber = xml_get_current_line_number($parser);
echo "? သုံးသပ်ကြည့်ရှုခြင်း XML အမှားတစ်ခုဖြစ်ပွားခဲ့သည်:\n";
echo "အမှားသတင်းစကား:$errorMessage\n";
echo "အမှားကုဒ်:$errorCode\n";
echo "အမှားအမည်:$lineNumber\n";
// အမှားသစ်ထုတ်လုပ်ခြင်း,或者引导အသုံးပြုသူ查看帮助页面
// နမူနာ:မှတ်တမ်းတင်ရန်အမှားများကိုမှတ်တမ်းတင်ပါ
error_log("XML သုံးသပ်ကြည့်ရှုခြင်း错误:$errorMessage အတွက် $lineNumber အိုကေ", 3, "/var/log/xml_errors.log");
// သို့မဟုတ်အကူအညီ link ကိုပြပါ
echo "ကျေးဇူးပြု. အကူအညီစာရွက်စာတမ်းကိုကြည့်ပါ:https://m66.net/xml/help\n";
} else {
echo "? XML သုံးသပ်ကြည့်ရှုခြင်း成功!\n";
}
// 释放မိစ်ဆာ资源
xml_parser_free($parser);
?>
xml_parser_create ()
XML parser အရင်းအမြစ်ကိုနောက်ပိုင်းတွင် XML ကြိုးများကိုခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုသည်။
xml_parse ()
ထောက်ပံ့ပေး XML string ကို pareses ။ ခွဲခြမ်းစိတ်ဖြာခြင်းပျက်ကွက်လျှင် မှားယွင်းစွာ ပြန်လာ၏။
XML_GEget_error_code () / xml_error_string ()
အမှားကုဒ်ကိုရယူပါ။ ၎င်းကိုဖတ်နိုင်သောအမှားသတင်းအချက်အလက်သို့ပြောင်းပါ။
xml_get_current_line_number_number_number_number
အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါပြ problems နာများကိုမြန်မြန်ဆန်ဆန်အနေအထားကိုလွယ်ကူချောမွေ့စေသည့်အခါလိုင်းနံပါတ်ကိုရယူပါ။
xml_parser_Free ()
Memory ယိုစိမ့်မှုများကိုရှောင်ရှားရန်ခွဲခြမ်းစိတ်ဖြာပြီးနောက်အရင်းအမြစ်များကိုဖြန့်ချိပါ။
ဤနည်းလမ်းသည်အောက်ပါအခြေအနေများအတွက်အလွန်သင့်တော်သည်။
အသုံးပြုသူများသည် XML ဖိုင်များကို upload ပြုလုပ်သည့်အခါ format စစ်ဆေးခြင်း,
Fault Propertant လုပ်ခြင်းသည်တတိယပါတီ၏ interface သည် XML ဒေတာများကိုပြန်ပို့သောအခါ,
အလိုအလျောက်ဒေတာတင်သွင်းမှုစနစ်တွင်ယုတ္တိဗေဒကိုကြိုတင်စစ်ဆေးခြင်း,
အွန်လိုင်းတည်းဖြတ်သူအတွက် XML format ကိုလက်ငင်းစစ်ဆေးပါ။
DOM သို့မဟုတ် Simplexml တို့ဖြင့် libxml extensions များကိုအသုံးပြုခြင်းသည်ပိုမိုအဆင့်မြင့်သော XML စစ်ဆင်ရေးနည်းလမ်းများဖြစ်သည် ။
ပြင်ပ XML အချက်အလက်များကိုတိုက်ရိုက်မယုံကြည်ပါနှင့်။ အမှားအယွင်းများကို format လုပ်ခြင်းအပြင်၎င်းကိုအန္တရာယ်ရှိသောအဖွဲ့အစည်းများ (XXE တိုက်ခိုက်မှုများ) သို့လည်းထိုးသွင်းနိုင်သည်။ Entity parsing function ကိုပိတ်ရန်သတိရပါ။