လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML_PARSSSS မှ CDATA ပါဝင်သော XML စာရွက်စာတမ်းများကိုမည်သို့ခွဲခြမ်းစိတ်ဖြာနည်း

XML_PARSSSS မှ CDATA ပါဝင်သော XML စာရွက်စာတမ်းများကိုမည်သို့ခွဲခြမ်းစိတ်ဖြာနည်း

M66 2025-05-13

PHP တွင် XML တွင် XML တွင်လုပ်ဆောင်ရန်နည်းလမ်းများစွာရှိသည်။ XML_Parse သည် XML ဖွဲ့စည်းပုံအတွက်ပိုမိုအားကောင်းသည့်ထိန်းချုပ်မှုလိုအပ်ချက်ရှိသော developer များအတွက်သင့်လျော်သောအခြေခံလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် CData ဒေသပါ 0 င်သည့် XML စာရွက်စာတမ်းတစ်ခုကိုခွဲခြမ်းစိတ်ဖြာရန် XML_Parse function ကိုမည်သို့အသုံးပြုရမည်ကိုဖော်ပြရန်ဖြစ်သည်။

CDATA area ရိယာဆိုတာဘာလဲ။

XML တွင် <! [CDATA [... ]]> သည် parser ကို XML syntax အဖြစ်မခွဲသင့်ကြောင်းပြောရန်ညွှန်ကြားချက်တစ်ခုဖြစ်သည့်ညွှန်ကြားချက်တစ်ခုဖြစ်ပါတယ်။ ၎င်းသည် HTML သို့မဟုတ် script code ကဲ့သို့သောအထူးအက္ခရာများပါ 0 င်သည့်အကြောင်းအရာများအတွက်အလွန်အသုံးဝင်သည်။

ဥပမာ -

 <note>
  <to>Tom</to>
  <message><![CDATA[Hello <b>Tom</b>, welcome to <a href="https://m66.net">our site</a>!]]></message>
</note>

XML_PARSE ကို အသုံးပြု. XML ကိုခွဲခြမ်းစိတ်ဖြာရန်အခြေခံအဆင့်များ

XML_PARSESS သည် PHP တွင် XML line ကိုမျဉ်းကြောင်းဖြင့်ခွဲခြမ်းစိတ်ဖြာရန်အတွက်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ CDATA ဒေသကိုခွဲခြမ်းစိတ်ဖြာရန်၎င်းကိုအသုံးပြုရန်အတွက်သင်သည်ပုံမှန်အားဖြင့် XML_Parser_create () နှင့်စိတ်ကြိုက်ပရိုဆက်ဆာလုပ်ငန်းများကိုအသုံးပြုရန်လိုအပ်သည်။

1 ။ parser ဖန်တီးပါ

 $parser = xml_parser_create();

2 ။ အပြောင်းအလဲနဲ့ function ကိုသတ်မှတ်ပါ

Processor Provalor သုံးခုကိုမှတ်ပုံတင်ရန်လိုအပ်သည် - Start tag, အဆုံး tag နှင့်ဇာတ်ကောင်ဒေတာပရိုဆက်ဆာ။

 $data = [];

function startElement($parser, $name, $attrs) {
    global $data;
    $data['current'] = $name;
}

function endElement($parser, $name) {
    global $data;
    $data['current'] = null;
}

function characterData($parser, $value) {
    global $data;
    if (!isset($data['values'][$data['current']])) {
        $data['values'][$data['current']] = '';
    }
    $data['values'][$data['current']] .= $value;
}

xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");

3 ။ XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာခြင်း

 $xml = <<<XML
<note>
  <to>Tom</to>
  <message><![CDATA[Hello <b>Tom</b>, welcome to <a href="https://m66.net">our site</a>!]]></message>
</note>
XML;

if (!xml_parse($parser, $xml, true)) {
    die(sprintf("XML Error: %s at line %d",
        xml_error_string(xml_get_error_code($parser)),
        xml_get_current_line_number($parser)));
}
xml_parser_free($parser);

4 ။ output ရလဒ်

 print_r($data['values']);

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [TO] => Tom
    [MESSAGE] => Hello <b>Tom</b>, welcome to <a href="https://m66.net">our site</a>!
)

မှတ်စု: tag အမည်များအားလုံးသည်စာလုံးအမြောက်အများသို့ပြောင်းလဲလိမ့်မည်။

အကျဉ်းချုပ်

XML_Parse သည်ရှုပ်ထွေးသောသို့မဟုတ်ကြီးမားသော volume XML ဒေတာများကိုပြုပြင်ရန်အတွက်သင့်လျော်သော evriven xml parsing နည်းလမ်းဖြစ်သည်။ CDATA များပါ 0 င်သည့် အမှုများကို ဖြစ်ရပ်များအတွက်, ၎င်းသည် DOM သို့မဟုတ် Simplexml ထက်အသုံးပြုရန်ပိုမိုရှုပ်ထွေးသော်လည်းစွမ်းဆောင်ရည်နှင့်ပြောင်းလွယ်ပြင်လွယ်တို့တွင်အားသာချက်များရှိသည်။

အကယ်. သင်၏စီမံကိန်းသည်မြင့်မားသောခွဲခြမ်းစိတ်ဖြာမှုစွမ်းဆောင်ရည်မြင့်မားရန်လိုအပ်ပါကသို့မဟုတ် XML တွင်ဖြစ်ရပ်များကိုပြုပြင်ရန်အတွက်လိုအပ်ပါက XML_Parse သည် ရွေးချယ်စရာကောင်းလိမ့်မည်။