လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML_Parse နှင့် xml_parser_create နှင့်အတူ custom parser ဖန်တီးနည်း

XML_Parse နှင့် xml_parser_create နှင့်အတူ custom parser ဖန်တီးနည်း

M66 2025-05-12

PHP တွင် XML ဒေတာများကိုထုတ်လုပ်ခြင်းသည်ဘုံလုပ်ငန်းတစ်ခုဖြစ်သည်။ PHP သည် XML နှင့် XML_Parser_Create တို့တွင် XML ကိုလုပ်ဆောင်ရန်နည်းလမ်းအမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ ဤလုပ်ဆောင်ချက်များသည်အဖြစ်အပျက်များကိုမောင်းနှင်သည့် parsing method တစ်ခုဖြစ်သောကြောင့် XML အချက်အလက်အမြောက်အများကိုထုတ်လုပ်သည့်အခါစွမ်းဆောင်ရည်နှင့်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်အာမခံနိုင်သည်။

ဤဆောင်းပါးတွင် XML_Parse နှင့် XML_Parser_Create ကို မည်သို့အသုံးပြုရမည်, XML parser ကိုဖန်တီးရန်နှင့် parsing အတွင်း xml အချက်အလက်များကိုမှန်ကန်စွာလုပ်ဆောင်ရန်မည်သို့ပြုလုပ်ရမည်ကိုကျွန်ုပ်တို့ရှင်းပြပါမည်။

1 ။ XML_Parse နှင့် xml_parser_create ဘာတွေလဲ။

  • XML_Parser_create : ဒီ function ကို xml parser တစ်ခုဖန်တီးရန်နှင့် parser အရင်းအမြစ်ကိုပြန်ပို့ရန်အသုံးပြုသည်။ ဤ parster မှတစ်ဆင့် PHP သည် XML ဖွဲ့စည်းပုံအရဖိုင်များသို့မဟုတ်ကြိုးများ၌အချက်အလက်များကိုတဖြည်းဖြည်းခွဲခြမ်းစိတ်ဖြာနိုင်သည်။

  • XML_Parse - ဤလုပ်ဆောင်မှုကို XML_Parser_create မှဖန်တီးထားသော parsers များပြုလုပ်ရန်အသုံးပြုသည်။ ၎င်းသည် XML အကြောင်းအရာကိုအဆင့်ဆင့်တက်ပြီးဆက်စပ်ဖြစ်ရပ်များကိုခွဲခြမ်းစိတ်ဖြာနိုင်သည် (ဥပမာ, tag သည် tag ကိုစတင်ခြင်း, သို့မဟုတ်စာသား node များကြုံတွေ့ရသောအခါ)

သဒ္ဒါ:

 xml_parser_create([encoding]);
xml_parse(parser, data[, terminate]);
  • xml_parser_create parser ကိုဖန်တီးသောအခါ, သင် encoding ကိုသတ်မှတ်ရန်ရွေးချယ်နိုင်သည် (ဥပမာ - UTF-8 , ISO-8859-1 စသည်) ။

  • XML_PARSSES ကို ဒေတာကိုခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုသည်။ ၎င်းသည်ခွဲခြမ်းစိတ်ဖြာတိုင်းက XML data block လုပ်ခြင်းကိုပြုလုပ်ပြီး callback function မှတဆင့်လုပ်ဆောင်သည်။

2 ။ ထုံးစံ xml parser ကိုဖန်တီးပါ

PHP တွင်ကျွန်ုပ်တို့သည် XML_Parser_Create ကို သုံး. chiness callback လုပ်ဆောင်ချက်များကိုသတ်မှတ်ခြင်းဖြင့်ခွဲခြမ်းစိတ်ဖြာခြင်းလုပ်ငန်းစဉ်များတွင်မတူညီသောအဖြစ်အပျက်များကိုကိုင်တွယ်ရန် XML_Parser_Create ကို သုံးနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် start tag, end tag, စာသားအကြောင်းအရာများစသည်တို့ကိုကိုင်တွယ်ရန် callback function ကိုသတ်မှတ်နိုင်သည်။

နမူနာကုဒ်:

 <?php
// Custom Callback function ကို
function startElementHandler($parser, $name, $attrs) {
    echo "tag ကိုစတင်ပါ: $name\n";
    // Print Label Properties
    if (!empty($attrs)) {
        echo "Tag Properties: " . print_r($attrs, true) . "\n";
    }
}

function endElementHandler($parser, $name) {
    echo "tag tag: $name\n";
}

function characterDataHandler($parser, $data) {
    echo "စာသားဒေတာ: $data\n";
}

// ဖန်တီး XML မိစ်ဆာ
$parser = xml_parser_create('UTF-8');

// callback function ကိုသတ်မှတ်ပါ
xml_set_element_handler($parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($parser, "characterDataHandler");

// နမူနာ XML အချက်များ
$xml_data = '<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
    <book>
        <title lang="en">PHP for Beginners</title>
        <author>John Doe</author>
        <price>29.95</price>
    </book>
    <book>
        <title lang="es">PHP para Principiantes</title>
        <author>Juan Pérez</author>
        <price>25.95</price>
    </book>
</bookstore>';

// သုံးသပ်ကြည့်ရှုခြင်း XML အချက်များ
if (!xml_parse($parser, $xml_data)) {
    echo "XML သုံးသပ်ကြည့်ရှုခြင်း错误: " . xml_error_string(xml_get_error_code($parser)) . "\n";
} else {
    echo "XML အချက်များသုံးသပ်ကြည့်ရှုခြင်း成功\n";
}

// 释放မိစ်ဆာ资源
xml_parser_free($parser);
?>

ခွဲခြမ်းစိတ်ဖြာခြင်း

  • XML_SEST_ELEMEMENE_Handler သည် start tag နှင့် end tag အတွက် callback function များကိုသတ်မှတ်သည်

  • xml_set_character_Data_Handler သည် စာသားအချက်အလက်များကိုကိုင်တွယ်သော callback function captivatahandler ကို သတ်မှတ်သည်။

  • XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါ callback function ကိုခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းကွဲပြားခြားနားသော XML ဖြစ်ရပ်များကိုကိုင်တွယ်စဉ်အစပျိုးသည်။

ထုတ်လုပ်မှု -

 tag ကိုစတင်ပါ: bookstore
tag ကိုစတင်ပါ: book
tag ကိုစတင်ပါ: title
Tag Properties: Array
(
    [lang] => en
)
စာသားဒေတာ: PHP for Beginners
tag tag: title
tag ကိုစတင်ပါ: author
စာသားဒေတာ: John Doe
tag tag: author
tag ကိုစတင်ပါ: price
စာသားဒေတာ: 29.95
tag tag: price
tag tag: book
tag ကိုစတင်ပါ: book
tag ကိုစတင်ပါ: title
Tag Properties: Array
(
    [lang] => es
)
စာသားဒေတာ: PHP para Principiantes
tag tag: title
tag ကိုစတင်ပါ: author
စာသားဒေတာ: Juan Pérez
tag tag: author
tag ကိုစတင်ပါ: price
စာသားဒေတာ: 25.95
tag tag: price
tag tag: book
tag tag: bookstore
XML အချက်များသုံးသပ်ကြည့်ရှုခြင်း成功

3 ။ URL ဒေတာများကိုလုပ်ဆောင်ပါ

XML ဒေတာများကိုလုပ်ဆောင်သည့်အခါ URLs ပါ 0 င်သောအချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာရန်တစ်ခါတစ်ရံလိုအပ်သည်။ ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်း, သင်သည်အောက်ပါနှင့်ဆင်တူသည် XML အချက်အလက်များကိုသင်ကြုံတွေ့ရနိုင်သည်။

 <links>
    <link>http://m66.net/page1</link>
    <link>http://m66.net/page2</link>
</links>

အကယ်. ကျွန်ုပ်တို့သည်ဤ URL များကိုခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းနှင့်လုပ်ဆောင်လိုပါကကျွန်ုပ်တို့သည်ဤလင့်ခ်များကိုအကာအကွယ်ပေးထားသော function မှတဆင့်ဤလင့်ခ်များကိုဖြည့်ဆည်းပေးနိုင်သည်။

ပြုပြင်ထားသောနမူနာကုဒ်:

 <?php
// Custom Callback function ကို
function startElementHandler($parser, $name, $attrs) {
    echo "tag ကိုစတင်ပါ: $name\n";
}

function endElementHandler($parser, $name) {
    echo "tag tag: $name\n";
}

function characterDataHandler($parser, $data) {
    // ဟုတ်လားစစ်ဆေးပါ URL
    if (filter_var($data, FILTER_VALIDATE_URL)) {
        echo "ထိရောက်သော URL: $data\n";
    } else {
        echo "စာသားဒေတာ: $data\n";
    }
}

// ဖန်တီး XML မိစ်ဆာ
$parser = xml_parser_create('UTF-8');

// callback function ကိုသတ်မှတ်ပါ
xml_set_element_handler($parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($parser, "characterDataHandler");

// နမူနာ XML အချက်များ
$xml_data = '<?xml version="1.0" encoding="UTF-8"?>
<links>
    <link>http://m66.net/page1</link>
    <link>http://m66.net/page2</link>
</links>';

// သုံးသပ်ကြည့်ရှုခြင်း XML အချက်များ
if (!xml_parse($parser, $xml_data)) {
    echo "XML သုံးသပ်ကြည့်ရှုခြင်း错误: " . xml_error_string(xml_get_error_code($parser)) . "\n";
} else {
    echo "XML အချက်များသုံးသပ်ကြည့်ရှုခြင်း成功\n";
}

// 释放မိစ်ဆာ资源
xml_parser_free($parser);
?>

ထုတ်လုပ်မှု -

 tag ကိုစတင်ပါ: links
tag ကိုစတင်ပါ: link
ထိရောက်သော URL: http://m66.net/page1
tag tag: link
tag ကိုစတင်ပါ: link
ထိရောက်သော URL: http://m66.net/page2
tag tag: link
tag tag: links
XML အချက်များသုံးသပ်ကြည့်ရှုခြင်း成功

4 ။ အကျဉ်းချုပ်

XML_Parser_create နှင့် XML_PARSE နှင့် xml_parse နှင့်အတူ XML အချက်အလက်များကိုခွဲခြမ်းစိတ်ဖြာခြင်းသည်ခွဲခြမ်းစိတ်ဖြာခြင်းတွင်ဖြစ်ရပ်များကိုကိုင်တွယ်ဖြေရှင်းနိုင်ရန်နှင့် callback function များကိုအလွန်စိတ် 0 င်စားစေနိုင်သည်။ ဤလုပ်ဆောင်မှုများကိုပေါင်းစပ်ပြီး URLs များ, tag attribute များ, စာသားအချက်အလက်များစသည်တို့အပါအ 0 င်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီကျွန်ုပ်တို့သည် XML တွင်ဒေတာအမျိုးမျိုးကိုလုပ်ဆောင်နိုင်သည်။

Custom Callback function များကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကွဲပြားသော XML element များနှင့်စာသားများကိုလုပ်ဆောင်နိုင်ပြီးခွဲခြမ်းစိတ်ဖြာခြင်းလုပ်ငန်းစဉ်ကိုပိုမိုလည်ပတ်နိုင်ပြီးပြောင်းလွယ်ပြင်လွယ်ဖြစ်စေသည်။ ဤဖြစ်ရပ် - မောင်းနှင်သော parsing method သည်အထူးသဖြင့်ကြီးမားသော XML ဒေတာများကိုလုပ်ဆောင်ရန်လိုအပ်သည့် application အခြေအနေများအတွက်အထူးသင့်တော်သည်။

XML_Parse and ကို PHP တွင် XML_Parse_Create ကို မည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်မျှော်လင့်ပါသည်။