လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML_Parse_into_struct function သည် XML tags များကို၎င်းတို့၏ attribute အချက်အလက်များမှ XML tags များကိုခွဲခြားနှင့်ထုတ်ယူပါမည်နည်း။

XML_Parse_into_struct function သည် XML tags များကို၎င်းတို့၏ attribute အချက်အလက်များမှ XML tags များကိုခွဲခြားနှင့်ထုတ်ယူပါမည်နည်း။

M66 2025-06-12

PHP တွင် XML ကိုင်တွယ်ရန်သာမန်နည်းလမ်းများအနက်တစ်ခုမှာ XML_Parse_into_stroto_struct () function ကိုသုံးရန်ဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည် XML စာရွက်စာတမ်းများကိုစနစ်တကျဖွဲ့စည်းထားသောခင်းကျင်းမှုတစ်ခုအဖြစ်ခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုမှတစ်ဆင့် attribute အချက်အလက်များမှ XML tag များကိုခွဲခြားရန်နှင့်ထုတ်ယူရမည်ကိုရှင်းပြပြီး၎င်းကိုဥပမာဖြင့်သရုပ်ဖော်ပါလိမ့်မည်။

function ရှေ့ပြေးပုံစံ

 int xml_parse_into_struct(
    XMLParser $parser,
    string $data,
    array &$values,
    array &$index = null
);
  • $ Parser : XML parser အရင်းအမြစ်။

  • $ ဒေတာ - ခွဲခြမ်းစိတ်ဖြာရန် XML ဒေတာ။

  • $ တန်ဖိုးများ - output ကို၏စနစ်တကျခင်းကျင်း။

  • $ အညွှန်းကိန်း : တံဆိပ်များ indexing များအတွက် optional ကိုခင်းကျင်း။

တံဆိပ်နှင့် attribute သတင်းအချက်အလက်ထုတ်ယူနည်း

XML_Parse_into_struct () ၏သော့သည် tags များ, စာသား node များ, CDATA နှင့်အခြားသတင်းအချက်အလက်များကိုအမိန့်တွင်ထည့်သွင်းထားသည့် tags များ , စာသား node များ, Array ရှိ item တစ်ခုချင်းစီသည် actireTive array တစ်ခုဖြစ်ပြီးအဓိကနယ်ပယ်များတွင် -

  • Tag : Tag Name ။

  • Type : node အမျိုးအစား (ပွင့် လင်းအနီးကပ် , ပြည့်စုံ , CDATA စသည်) ။

  • Value : tag မှပါ 0 င်သောစာသားတန်ဖိုး (ဆိုလျှင်) ။

  • Attributes - tag ရဲ့ attribute ဟာ actiretive array အဖြစ်တည်ရှိတယ် (attribute တစ်ခုရှိရင်) ။

ဥပမာ - xml ပါ 0 င်သော attribute များပါဝင်သည်

အောက်ပါ XML ရှိတယ်ဆိုပါစို့။

 <books>
    <book id="1" category="fiction">
        <title>Book One</title>
    </book>
    <book id="2" category="non-fiction">
        <title>Book Two</title>
    </book>
</books>

parsing အတွက်အောက်ပါ PHP ကုဒ်ကိုသုံးနိုင်သည်။

 <?php
$xml = <<<XML
<books>
    <book id="1" category="fiction">
        <title>Book One</title>
    </book>
    <book id="2" category="non-fiction">
        <title>Book Two</title>
    </book>
</books>
XML;

$parser = xml_parser_create();
xml_parse_into_struct($parser, $xml, $values, $index);
xml_parser_free($parser);

echo "<pre>";
print_r($values);
echo "
"; ?>

ခွဲခြမ်းစိတ်ဖြာပြီးနောက် $ တန်ဖိုးများ ၏အကြောင်းအရာသည်အကြမ်းအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည် -

 Array
(
    [0] => Array
        (
            [tag] => BOOKS
            [type] => open
        )

    [1] => Array
        (
            [tag] => BOOK
            [type] => open
            [attributes] => Array
                (
                    [ID] => 1
                    [CATEGORY] => fiction
                )
        )

    [2] => Array
        (
            [tag] => TITLE
            [type] => complete
            [value] => Book One
        )

    [3] => Array
        (
            [tag] => BOOK
            [type] => close
        )

    [4] => Array
        (
            [tag] => BOOK
            [type] => open
            [attributes] => Array
                (
                    [ID] => 2
                    [CATEGORY] => non-fiction
                )
        )

    [5] => Array
        (
            [tag] => TITLE
            [type] => complete
            [value] => Book Two
        )

    [6] => Array
        (
            [tag] => BOOK
            [type] => close
        )

    [7] => Array
        (
            [tag] => BOOKS
            [type] => close
        )
)

ခွဲခြမ်းစိတ်ဖြာခြင်းညွှန်ကြားချက်များ

  • Book -tag တစ်ခုချင်းစီတွင် ပွင့်လင်းအနီးကပ် အမျိုးအစားများရှိသည်။

  • attribute အချက်အလက်များကို attributes key တွင်ပါ 0 င်ပြီး Associative Array ပုံစံတွင်ရှိသည်။

  • စာသားတန်ဖိုးများ (ဥပမာစာအုပ်ခေါင်းစဉ်) သည် တန်ဖိုး key တွင်တည်ရှိပြီး tag type သည်ပြီး ပြည့်စုံ သည်။

  • tag အမည်များကိုအမြဲတမ်းစာလုံးများအမြဲရှိသည်။ XML_Parse_into_sto_struct ၏ပုံမှန်အပြုအမူဖြစ်သည်။

attribute သတင်းအချက်အလက်ထုတ်ယူ

$ တန်ဖိုးများကို ခင်းကျင်းကျော်ကြားမှုဖြင့် attribute များဖြင့် attribute များဖြင့် attribute များဖြင့်ထုတ်ယူနိုင်သည်။ ဥပမာအားဖြင့်:

 foreach ($values as $entry) {
    if (isset($entry['attributes'])) {
        echo "Tag: {$entry['tag']}\n";
        foreach ($entry['attributes'] as $attrName => $attrValue) {
            echo "  $attrName => $attrValue\n";
        }
    }
}

မှတ်သားရန်အရာ

  • Tag အမည်များနှင့် attribute အမည်များကိုအလိုအလျောက်ပြောင်းလဲသွားသည်။

  • ဤလုပ်ဆောင်ချက်သည် tags များ၏အဆင့်ဆင့်ဖွဲ့စည်းပုံသတင်းအချက်အလက်ကိုမသိမ်းဆည်းထားပါ, သို့သော်သာဖြစ်စဉ်များတွင်သာစီစဉ်ထားသည်။

  • ရိုးရှင်းသော XML အတွက်သင့်တော်သည်, ပိုမိုရှုပ်ထွေးသောဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာပြုပြင်ခြင်းလိုအပ်ပါက dom သို့မဟုတ် simplexml ကိုအကြံပြုပါသည်။

အကျဉ်းချုပ်