PHP တွင် XML အချက်အလက်များကို XML အချက်အလက်များ (XML_Parse () နှင့် SimplexMl_load_string) တွင်အသုံးအများဆုံးနည်းလမ်းနှစ်ခုဖြစ်သည်။ ဤနှစ်ခုလုံးသည် XML ကိုအကောင်အထည်ဖော်နိုင်သော်လည်းအခြေခံအားဖြင့်ယန္တရားများ, ပြောင်းလွယ်ပြင်လွယ်စသည့်သိသိသာသာကွဲပြားခြားနားမှုများရှိနေသည်။ ဤဆောင်းပါးသည်၎င်းတို့၏အခြေခံကျသောအသုံးပြုမှု, တူညီခြင်းနှင့်ကွဲပြားခြားနားမှုများနှင့်အားနည်းချက်များနှင့်အားနည်းချက်များနှင့်အားနည်းချက်များ,
XML_Parse () သည် PHP မှပေးသော PHP မှပေးသော XML parers များထဲမှတစ်ခုဖြစ်သည်။ parser သည် start tag ကိုတွေ့သောအခါအဆုံး tag နှင့်ဇာတ်ကောင်အချက်အလက်များကိုသင်ကြိုတင်သတ်မှတ်ထားသည့် callback function ကိုခေါ်လိမ့်မည်။
နမူနာကုဒ်:
function startElement($parser, $name, $attrs) {
echo "tag ကိုစတင်ပါ: $name\n";
}
function endElement($parser, $name) {
echo "tag tag: $name\n";
}
function characterData($parser, $data) {
echo "ကေြနပ်သော: " . trim($data) . "\n";
}
$xmlData = <<<XML
<note>
<to>User</to>
<from>Admin</from>
<message>အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် http://m66.net</message>
</note>
XML;
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
if (!xml_parse($parser, $xmlData, true)) {
die("XML အမှားခွဲခြမ်းစိတ်ဖြာခြင်း: " . xml_error_string(xml_get_error_code($parser)));
}
xml_parser_free($parser);
ဆန့်ကျင်ဘက်အနေဖြင့် Simplexml_load_string () သည် Dom-based parsing နည်းလမ်းဖြစ်သည်။ ၎င်းသည် XML စာရွက်စာတမ်းတစ်ခုလုံးကိုအရာဝတ်ထုတစ်ခုအဖြစ်ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့် developer များက arrays သို့မဟုတ် objects properties များကဲ့သို့သော XML node များကိုရယူနိုင်ရန်, ၎င်းကိုပိုမိုအလိုလိုသိစေသည်။
နမူနာကုဒ်:
$xmlData = <<<XML
<note>
<to>User</to>
<from>Admin</from>
<message>အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် http://m66.net</message>
</note>
XML;
$xml = simplexml_load_string($xmlData);
echo "လက်လံသူ: " . $xml->to . "\n";
echo "ပေးပွေ: " . $xml->from . "\n";
echo "အကေြာင်းကြားချက်: " . $xml->message . "\n";
သီးခြားထင်ရှားသော | xml_parse () | Simplexml_load_string () |
---|---|---|
ခွဲခြမ်းစိတ်ဖြာခြင်းနည်းလမ်း | ဖြစ်ရပ်-Driven (SAX) | အရာဝတ်ထု -based (dom) |
မှတ်ဉာဏ်အသုံးပြုမှု | လျော့နည်း (ကြီးမားသောစာရွက်စာတမ်းများအတွက်သင့်လျော်) | ပိုမို (XML တစ်ခုလုံးကို Memory သို့တင်သည်) |
အသုံးပြုရန်လွယ်ကူခြင်း | ပိုပြီးရှုပ်ထွေးသော callback functions ကိုလိုအပ်ပါတယ် | Array / Object Access, ရိုးရှင်းသောနှင့်အလိုလိုသိခြင်းတို့နှင့်ဆင်တူသည် |
မီးပေးခြင်း | ပြောင်းလွယ်ပြင်လွယ်ပေမယ့်ရှုပ်ထွေး | ရိုးရှင်းသော်လည်းအကန့်အသတ်ဆုံးနိုင်မှု |
အမှားကိုင်တွယ် | လက်စွဲစာအုပ် | ပိုကောင်းတဲ့ built-in အပြောင်းအလဲနဲ့ |
ထောက်ပံ့ PHP ဗားရှင်း | PHP 4 နှင့်အထက် | PHP 5 နှင့်အထက် |
အားသာချက်:
၎င်းသည်မှတ်ဥာဏ်နည်းပါးပြီးကြီးမားသော XML ဖိုင်များကိုခွဲခြမ်းစိတ်ဖြာရန်သင့်တော်သည်။
ပိုမိုများပြားလာခြင်းနှင့်ပြောင်းလွယ်ပြင်လွယ် XML အကြောင်းအရာများကိုကောင်းမွန်စွာထိန်းချုပ်ခွင့်ပြုသည်။
RSS Streams (သို့) မှတ်တမ်းဖိုင်များကဲ့သို့သောအချက်အလက်ပြုပြင်ခြင်းအတွက်ပိုမိုသင့်တော်သည်။
အားနည်းချက် -
encoding သည်ရှုပ်ထွေးပြီး callback လုပ်ဆောင်ချက်များကိုအဓိပ္ပါယ်ဖွင့်ဆိုချက်လိုအပ်သည်။
အတွေ့အကြုံမရှိသေးသောနှင့်မသက်ဆိုင်သောစာဖတ်နိုင်မှုနှင့်မဖော်ရွေ။
နိမ့်သောဖွံ့ဖြိုးမှုထိရောက်မှုနှင့်ခက်ခဲ debugging ။
အားသာချက်:
အသုံးပြုရန်ရိုးရှင်းလွယ်ကူစေရန် Syntax နှင့်လျင်မြန်စွာဖွံ့ဖြိုးရန်လွယ်ကူသည်။
ဒေတာထုတ်ယူနိုင်စွမ်းကိုမြှင့်တင်ရန် XPathery ကိုထောက်ပံ့သည်။
အသေးစားနှင့်အလတ်စား XML ဖိုင်များနှင့်ကောင်းမွန်စွာဖွဲ့စည်းထားသောဒေတာများအတွက်သင့်တော်သည်။
အားနည်းချက် -
စာရွက်စာတမ်းတစ်ခုလုံးကိုခွဲခြမ်းစိတ်ဖြာခြင်းသည်မှတ်ဥာဏ်များစွာရှိသည်။
အားနည်းချက် xml အဆောက်အအုံများမှအားနည်းချက်ဒဏ်ခံသည်းခံစိတ်။
Ultra-Big-Big သို့မဟုတ် Dynamic Streaming XML ဒေတာများကိုကိုင်တွယ်ရန်မသင့်တော်ပါ။
သင်သည် ကြီးမားသော XML ဖိုင်များကို ကိုင်တွယ်ဖြေရှင်းခြင်းသို့မဟုတ် ဒေတာလိုင်းကိုလိုင်းဖြင့်ပြုလုပ်ရန် လိုအပ်သည့်အခါ XML_Parse () ကို အသုံးပြုရန်အကြံပြုသည်။
XML ဒေတာဖွဲ့စည်းပုံသည်ရိုးရှင်းပြီးဒေတာ volume သည်ကြီးမားသည်မဟုတ်, SimplexMl_load_string () ကို အသုံးပြုခြင်းသည်ဖွံ့ဖြိုးတိုးတက်မှုထိရောက်မှုကိုများစွာတိုးတက်စေနိုင်သည်။