<?php
/**
* ဆောင်းပါးခေါင်းစဉ်: xml_set_default_handler ဘယ်လိုလုပ်ဆောင်ချက်များကိုကိုင်တွယ်မလဲ XML စာရွက်စာတမ်းထဲမှာ CDATA node?
*/
?>
<hr>
### xml_set_default_handler ဘယ်လိုလုပ်ဆောင်ချက်များကိုကိုင်တွယ်မလဲ XML စာရွက်စာတမ်းထဲမှာ CDATA node?
တည်နေ PHP အလယ်ပိုင်း,`xml_set_default_handler` လုပ်ဆောင်ချက်များကိုအလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်,developer များကိုခွင့်ပြုသည် XML သုံးသပ်ကြည့်ရှုခြင်း过程အလယ်ပိုင်း遇到၏默认事件设置处理程序。အထူးသဖြင့်,၎င်းနှင့်မည်သို့ကိုင်တွယ်ရမည်ကိုပါ 0 င်သည် XML စာရွက်စာတမ်းထဲမှာ CDATA node。ဤဆောင်းပါးသည်၎င်းကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါမည် `xml_set_default_handler` ကိုင်တွယ်ရန်လုပ်ဆောင်ချက်များကို CDATA node。
#### ဘာလဲ CDATA node?
တည်နေ XML 文档အလယ်ပိုင်း,CDATA(Character Data)node是一种特殊၏文本node,ခွဲခြမ်းစိတ်ဖြာရန်မလိုအပ်သည့်ဇာတ်ကောင်ဒေတာများပါ 0 င်သည်。CDATA area ရိယာ၏ start mark ဖြစ်ပါတယ် `<![CDATA[`,နှင့်အဆုံး Mark ဖြစ်ပါတယ် `]]>`。တည်နေ这个区域内,ဇာတ်ကောင်အားလုံး,တူအပါအဝငျ `<` နှင့် `&` ထိုကဲ့သို့သောအထူးဇာတ်ကောင်,ဖြစ်သကဲ့သို့ကိုင်တွယ်လိမ့်မည်,အဖြစ်ထည့်သွင်းစဉ်းစားမ XML element ခွဲခြမ်းစိတ်ဖြာ。
ဥပမာအားဖြင့်,အောက်ပါတစ်ခုပါဝင်သောဖြစ်ပါတယ် CDATA ၏ XML နမူနာ:
```xml
<note>
<to>Tove</to>
<from>Jani</from>
<message><![CDATA[This is a <message> with some <text> that is not parsed]]></message>
</note>
ဒီဥပမာမှာ
xml_set_Default_Handler function သည် PHP တွင် XMPLARSER အတန်းအစား၏အရေးကြီးသောနည်းလမ်းဖြစ်သည်။ ၎င်းကို XML parser အတွက် default processing function ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ XML document မှ node များမရှိသော node များအားလုံးကိုတွေ့ရသည့်အခါဤ handler ဟုခေါ်သည်။ Default Processing function သည်စာသား node များ, CDATA node များ, မှတ်ချက်များ, မှတ်ချက်များစသည်တို့ကိုဖမ်းယူလိမ့်မည်။
လုပ်ဆောင်ချက်ကိုအောက်ပါအတိုင်းသတ်မှတ်ထားသည်။
bool xml_set_default_handler ( resource $parser, callable $handler )
$ parser : XML parser ၏အရင်းအမြစ်လက်ကိုင်။
$ handler - default node ကိုကိုင်တွယ်ရန်အသုံးပြုသော callback function ကို။ ဤလုပ်ဆောင်ချက်သည် parameters နှစ်ခုကိုရရှိသည်။ အဖြစ်အပျက်အမျိုးအစားနှင့်သက်ဆိုင်ရာစာသားအချက်အလက်များ။
XML parser ကို CDATA node ကိုတွေ့သောအခါပုံမှန်အပြုအမူသည် CDATA အကြောင်းအရာကိုစာသားအဖြစ်စာသားအဖြစ်ဆက်ဆံရန်ဖြစ်သည်။ သို့သော်ကျွန်ုပ်တို့သည် XML_SEST_DEFAfeFAUTE_Handler မှတစ်ဆင့် parser အတွက် Custom default haile for default haile for ကိုသတ်မှတ်နိုင်သည်။
XML_SEST_DEFAUNFAUND_Handler ကို XML ရှိ CDATA node များကိုကိုင်တွယ်ရန် XML_SES_DEFAUND_Handler ကို မည်သို့အသုံးပြုရမည်နည်း။
<?php
$xml_data = <<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<message><![CDATA[This is a <message> with some <text> that is not parsed]]></message>
</note>
XML;
function default_handler($parser, $data) {
// 输出处理၏CDATAကေြနပ်သော
echo "CDATA ကေြနပ်သော: " . htmlspecialchars($data) . "\n";
}
// ဖန်တီး XML မိစ်ဆာ
$parser = xml_parser_create();
// default processing function ကိုသတ်မှတ်ပါ
xml_set_default_handler($parser, 'default_handler');
// သုံးသပ်ကြည့်ရှုခြင်း XML အချက်များ
xml_parse($parser, $xml_data);
// 释放မိစ်ဆာ
xml_parser_free($parser);
?>
Parser ကိုဖန်တီးပါ ။ XML_Parser_Create () function ကို သုံး. XML parser ကိုဖန်တီးပါ။
processing function ကိုသတ်မှတ်ပါ - xml_set_default_Handler မှတဆင့် parser ၏ default_handler function ကိုသတ်မှတ်ပါ။ ဤလုပ်ဆောင်ချက်သည်ခွဲခြမ်းစိတ်ဖြာခြင်းမရှိသောအမျိုးအစား၏ node ကိုဆုံတွေ့သည့်အခါတိုင်းဤလုပ်ဆောင်ချက်ဟုခေါ်သည်။
xml ဒေတာကိုခွဲခြမ်းစိတ်ဖြာခြင်း xml_parse () ကိုသုံးပါ။ ဘာဖြစ်လို့လဲဆိုတော့ XML မှာ
output processing ရလဒ် - default_handler function သည် CDATA အကြောင်းအရာကို HTML entity format တွင်ထုတ်လုပ်လိမ့်မည်။
အထက်ပါကုဒ်ကိုဖွင့်ပြီးနောက်, output ကိုဖြစ်လိမ့်မည်:
CDATA ကေြနပ်သော: This is a <message> with some <text> that is not parsed
ဤအချက်က XML parser သည် CDATA node ရှိအကြောင်းအရာများကိုအောင်မြင်စွာဖမ်းမိပြီးကျွန်ုပ်တို့၏စိတ်ကြိုက်ပြုပြင်ခြင်းလုပ်ဆောင်မှုကိုကျော်ဖြတ်နိုင်ကြောင်းပြသသည်။ CDATA ရှိအထူးအက္ခရာများ (ဥပမာ <နှင့်>> ကဲ့သို့သော < နှင့်>> ကဲ့သို့သော <နှင့် > ကဲ့သို့) သည်အမှားများကိုရှောင်ရှားရန် HTML အဖွဲ့အစည်းများသို့ပြောင်းလဲခြင်းကိုသတိပြုပါ။
XML_set_Default_Handler function မှတဆင့် developer များက CDATA node များအပါအ 0 င် XML စာရွက်စာတမ်းများတွင်အမျိုးမျိုးသောအကြောင်းအရာများကိုပြောင်းလွယ်ပြင်လွယ်ပြုနိုင်သည်။ Parser သို့ Custom Handller ကိုချည်နှောင်ပြီးနောက်သင်အတိအလင်းသတ်မှတ်ထားသော node များအားလုံးကိုစနစ်တကျသတ်မှတ်ထားသည့် node များအားလုံးကိုစနစ်တကျပြုလုပ်နိုင်သည်။ ဤနည်းလမ်းသည် XML ခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်ပိုမိုထိန်းချုပ်မှုနှင့်စိတ်ကြိုက်စွမ်းဆောင်ရည်များကိုပိုမိုထိန်းချုပ်နိုင်စွမ်းနှင့် XML အချက်အလက်များကိုလုပ်ဆောင်ရန်အတွက်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။