XML စာရွက်စာတမ်းများနှင့်အလုပ်လုပ်သောအခါ PHP သည် XML အချက်အလက်များကိုစီမံရန်နှင့်စီမံရန်အတွက်အင်အားကြီးသောလုပ်ဆောင်မှုများကိုထောက်ပံ့ပေးသည်။ အထူးသဖြင့်ကျွန်ုပ်တို့သည် XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာသောအခါ element အမျိုးမျိုးနှင့်မျက်နှာချင်းဆိုင်တွင် element တစ်ခုစီကိုကွဲပြားစွာတုံ့ပြန်ရန်လိုအပ်သည်။ ဤကိစ္စတွင် XML_SET_DEFAUND_Handler function သည်အရေးကြီးသောအခန်းကဏ် play မှပါဝင်နိုင်သည်။ ၎င်းသည်အထူးပြုလုပ်ထားသော XML element များအတွက် default processing method ကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။
ဤဆောင်းပါးသည် XML_SET_DEFAFATY_Handler ကို XML element အမျိုးအစားအမျိုးမျိုးကိုပြောင်းလွယ်ပြင်လွယ်ကိုင်တွယ်ဖြေရှင်းရန်နှင့်သူတို့၏တိကျသောအသုံးပြုမှုကိုဥပမာအားဖြင့်ပြသရန်မည်သို့အသေးစိတ်ဖော်ပြထားသည်။
XML_set_DEFAult_Handler သည် PHP ၏ XML extension မှပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ XML Parser အတွက်ပုံမှန် processer အတွက် default processing function ကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။ ရိုးရိုးလေးပြောရရင်ဒီ function ဟာ "အောက်ခြေ -Up" ယန္တရားတစ်ခုဖြစ်ပါတယ်။
bool xml_set_default_handler ( resource $parser , callable $handler )
$ Parser : XML parser အရင်းအမြစ်, များသောအားဖြင့် xml_parser_create မှတဆင့်ဖန်တီးထားသော parser ။
$ handler : default ကိုင်တွယ် function ကို။ ဤလုပ်ဆောင်ချက်သည်အောက်ပါ parameters များကိုလက်ခံရရှိသည်။
$ parser : လက်ရှိ parser အရင်းအမြစ်။
$ ဒေတာ - လက်ရှိဖတ်ရန် XML ဒေတာပိတ်ပင်တားဆီးမှု (string) ကိုဖတ်ပါ။
ပထမ ဦး စွာ xml parser အသစ်တစ်ခုကိုဖန်တီးရန် XML_Parser_create ကို အသုံးပြု. XML parser ကိုဖန်တီးပါ။
$parser = xml_parser_create();
ပုံမှန် processing function သည်ခွဲခြမ်းစိတ်ဖြာခြင်းမပြုနိုင်သည့်ဒြပ်စင်တစ်ခုကိုခွဲခြမ်းစိတ်ဖြာသည့်ဒြပ်စင်ကိုတွေ့သောအခါခေါ်ယူသည့်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုသည် parameters နှစ်ခုကို parameters နှစ်ခုကိုလက်ခံသည်။ Parser အရင်းအမြစ်နှင့်အချက်အလက်အကြောင်းအရာများကိုပါ။
function default_handler($parser, $data) {
echo "Default handler: " . $data . "\n";
}
default processing function ကို xml_set_default_Handler မှတဆင့်သတ်မှတ်သည်။
xml_set_default_handler($parser, 'default_handler');
ထို့နောက် XML_Parse ကို XML data ကို parse လုပ်ရန် xml_parse ကို သုံးနိုင်သည်။ အတိအလင်းမလုပ်ဆောင်နိုင်သည့်ဒြပ်စင်တစ်ခုဖြစ်ပါကပုံမှန်လုပ်ဆောင်မှုလုပ်ဆောင်ချက်ကိုခေါ်ယူလိမ့်မည်။
$xml_data = "<root><element>Content 1</element><unknown>Content 2</unknown></root>";
xml_parse($parser, $xml_data);
xml_parser_free($parser);
ဤဥပမာတွင် XML Parser သည် <အမည်မသိ> tag ကိုတွေ့သောအခါသတ်သတ်မှတ်မှတ်ပြုပြင်ခြင်းလုပ်ဆောင်ချက်ကိုမသတ်မှတ်ထားသည့်အခါ default processing funform ကို default_Handler ကို စတင်ခြင်းနှင့်ရလဒ်များသည်အောက်ပါအတိုင်းဖြစ်သည်။
Default handler: Content 2
ကျွန်ုပ်တို့သည်ရှုပ်ထွေးသော XML ဖိုင်ကိုပေါင်းစပ်ထားသောရှုပ်ထွေးသော XML ဖိုင်ကိုကိုင်တွယ်မည်ဆိုပါစို့။ ဤကိစ္စတွင်ကျွန်ုပ်တို့သည် XML_Set_Default_Handler နှင့်အခြား elem letling function များကိုအမျိုးမျိုးသောအခြေအနေများနှင့်အတူပြောင်းလွယ်ပြင်လွယ်ဖြေရှင်းရန်အတွက်အသုံးပြုသောအခြား element function များကိုသုံးနိုင်သည်။
$parser = xml_parser_create();
// element တစ်ခု၏အစနှင့်အဆုံးအတွက်အပြောင်းအလဲနဲ့လုပ်ဆောင်ချက်ကိုသတ်မှတ်ပါ
function start_element($parser, $name, $attrs) {
echo "Start element: $name\n";
}
function end_element($parser, $name) {
echo "End element: $name\n";
}
// default processing function ကိုသတ်မှတ်ပါ
function default_handler($parser, $data) {
echo "Default handler: " . $data . "\n";
}
// element တစ်ခု၏အစနှင့်အဆုံးအတွက်အပြောင်းအလဲနဲ့လုပ်ဆောင်ချက်ကိုသတ်မှတ်ပါ
xml_set_element_handler($parser, 'start_element', 'end_element');
// default processing function ကိုသတ်မှတ်ပါ
xml_set_default_handler($parser, 'default_handler');
// သုံးသပ်ကြည့်ရှုခြင်း XML အချက်များ
$xml_data = "<root><name>John</name><age>30</age><unknown>Unknown content</unknown></root>";
xml_parse($parser, $xml_data);
// 释放သုံးသပ်ကြည့်ရှုခြင်း器资源
xml_parser_free($parser);
output ရလဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
Start element: root
Start element: name
End element: name
Start element: age
End element: age
Start element: unknown
Default handler: Unknown content
End element: unknown
End element: root
ဤဥပမာတွင် start_element နှင့် end_element function များသည် XML element များ၏ start and end end tags များကိုအသီးသီးကိုင်တွယ်ကြသည်။ ပုံမှန်လုပ်ဆောင်မှု function ကို default processing function default_Handler သည် <unnown> tag တွင်ပါသောအကြောင်းအရာများကိုကိုင်တွယ်သည်။
အကယ်. XML အချက်အလက်များတွင် URLs သို့မဟုတ်အခြားအထူးအချက်အလက်များပါ 0 င်ပါက၎င်းကိုပြောင်းလွယ်ပြင်လွယ်ကိုင်တွယ်နိုင်သည်။ default processing function တွင်ကျွန်ုပ်တို့သည်ဒေတာများကိုခွဲခြမ်းစိတ်ဖြာနိုင်ပြီး URL ကိုထုတ်ယူနိုင်ပြီးနောက်ထပ်အပြောင်းအလဲနဲ့လုပ်ဆောင်နိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် XML ရှိ URLs အားလုံးကို M66.net ဒိုမိန်းအမည်ကို M66.net domain name သို့ညွှန်ပြလိုပါကကျွန်ုပ်တို့လုပ်နိုင်သည်။
function default_handler($parser, $data) {
// ၎င်းတွင်ပါရှိမရှိ detect ပါ URL,ဒိုမိန်းအမည်ကိုအစားထိုးပါ
$data = preg_replace('/https?:\/\/([a-zA-Z0-9.-]+)\//', 'https://m66.net/', $data);
echo "Processed data: " . $data . "\n";
}
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ဖြေရှင်းထားသော URL အားလုံးကို M66.net ဒိုမိန်းအမည်များကိုတစ်ပုံစံတည်းပြုပြင်ပြောင်းလဲနိုင်ရန်သေချာစေနိုင်သည်။
xml_set_Default_Handler function သည်အတိအလင်းမလုပ်ဆောင်သောဒြပ်စင်များကိုကိုင်တွယ်ရန်ပြောင်းလွယ်ပြင်လွယ်ရှိသောနည်းလမ်းဖြစ်သည်။ XML_SET_ELEMEMETER_HANDLER နှင့်အခြားဆက်စပ်သောလုပ်ဆောင်ချက်များကိုပေါင်းစပ်ပြီးအခြားလုပ်ဆောင်မှုအမျိုးအစားများအရကျွန်ုပ်တို့သည်အပြောင်းအလဲကိုကိုယ်ပိုင်ပြုလုပ်နိုင်သည်။ URL ပြုပြင်ခြင်းကဲ့သို့သောအထူး XML အကြောင်းအရာအချို့အတွက်လည်း၎င်းကိုပုံမှန်အသုံးအနှုန်းများဖြင့်ပြုလုပ်နိုင်သည်။
ဤနည်းလမ်းများမှတစ်ဆင့် PHP သည်ကျွန်ုပ်တို့အားထိရောက်စွာကူညီနိုင်ပြီးရှုပ်ထွေးသော XML ဒေတာအမျိုးမျိုးကိုကူညီနိုင်သည်။