လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML_SESS_END_ENDOST_STACL_Handler နှင့် XML_SESST_STATT_STATT_STATT_STATT_STATE_HANDERLER သည်ရှုပ်ထွေးသော XML namespace အဆောက်အအုံများကိုကိုင်တွယ်ရန်အတူတကွအလုပ်လုပ်သည်

XML_SESS_END_ENDOST_STACL_Handler နှင့် XML_SESST_STATT_STATT_STATT_STATT_STATE_HANDERLER သည်ရှုပ်ထွေးသော XML namespace အဆောက်အအုံများကိုကိုင်တွယ်ရန်အတူတကွအလုပ်လုပ်သည်

gitbox 2025-05-26

ရှုပ်ထွေးသော XML စာရွက်စာတမ်းများခွဲခြမ်းစိတ်ဖြာသည့်အခါ namespace ယန္တရားသည်အလွန်အရေးကြီးသည်။ ၎င်းသည်အထူးသဖြင့် XML vocabulary မျိုးစုံကိုရောထွေးသည့်အခါ, PHP တွင် XML_SESS_STATT_STATT_STATT_HANDLER နှင့် XML_SEST_END_ENDES_DECL_Handler function များသည် namespace ၏ဘဝသံသရာကိုတိကျစွာထိန်းချုပ်ရန်နည်းလမ်းတစ်ခုဖြစ်ပြီး XML namunspace ၏ကောင်းမွန်သောစီမံခန့်ခွဲမှုရရှိနိုင်သည်။

namespace အပြောင်းအလဲနဲ့၏အခြေခံ

XML namespace ကြေငြာချက်တစ်ခုသည် element start tag တွင်များသောအားဖြင့်ပေါ်လာသည်။

 <root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="http://www.w3schools.com/furniture">
  <h:table>
    <h:tr>
      <h:td>Apples</h:td>
      <h:td>Bananas</h:td>
    </h:tr>
  </h:table>
  <f:table>
    <f:name>African Coffee Table</f:name>
    <f:width>80</f:width>
    <f:length>120</f:length>
  </f:table>
</root>

ဤဥပမာတွင်ကွဲပြားခြားနားသော namespace H နှင့် F ကို သတ်မှတ်ထားသော HTML နှင့်ပရိဘောဂဖော်ပြချက်အတွက်သတ်မှတ်ထားသောနှင့်အသုံးပြုသည်။ ဤဖွဲ့စည်းပုံ၏ခွဲခြမ်းစိတ်ဖြာခြင်းသည် Namespace ကြေငြာချက်များနှင့်မကိုက်ညီပါကဒြပ်စင်များကိုဖော်ထုတ်ရန်အခက်အခဲရှိလိမ့်မည်။

နိဒါန်းနိဒါန်း

xml_set_start_namespace_decl_handler

ဤလုပ်ဆောင်ချက်သည် Namespace ကြေငြာချက်အသစ်တစ်ခုနှင့်ကြုံတွေ့ရသည့်အခါ callback function ကိုမှတ်ပုံတင်ရန်အသုံးပြုသည်။

 bool xml_set_start_namespace_decl_handler ( resource $parser , callable $handler )

callback function ကိုသုံးခုက parameters တွေကိုလက်ခံသည်:

  • $ parser : parser အရင်းအမြစ်;

  • $ ရှေ့ဆက် : namespace ရှေ့ဆက် (အချည်းနှီးသော string ကို);

  • $ URI : namespace uri ။

xml_set_end_namespace_decl_handler

ဤ function သည် callback ကိုမှတ်ပုံတင်ပြီး namespace ကြေငြာစာတမ်းအဆုံးတွင်ဖြစ်သည်။

 bool xml_set_end_namespace_decl_handler ( resource $parser , callable $handler )

callback function ကို parameters နှစ်ခုကိုလက်ခံသည်:

  • $ parser : parser အရင်းအမြစ်;

  • $ ရှေ့ဆက် : namespace ရှေ့ဆက်။

ဥပမာ - Namespace အပြောင်းအလဲနဲ့ပြည့်စုံခြင်း

အောက်ပါဥပမာသည် XML namespaces နှင့်အလုပ်လုပ်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။

 <?php

$xml = <<<XML
<root xmlns:h="http://www.w3.org/TR/html4/"
      xmlns:f="http://www.w3schools.com/furniture">
  <h:table>
    <h:tr>
      <h:td>Apples</h:td>
      <h:td>Bananas</h:td>
    </h:tr>
  </h:table>
  <f:table>
    <f:name>African Coffee Table</f:name>
    <f:width>80</f:width>
    <f:length>120</f:length>
  </f:table>
</root>
XML;

$parser = xml_parser_create();

xml_set_start_namespace_decl_handler($parser, function($parser, $prefix, $uri) {
    echo "Start Namespace: prefix = {$prefix}, uri = {$uri}\n";
});

xml_set_end_namespace_decl_handler($parser, function($parser, $prefix) {
    echo "End Namespace: prefix = {$prefix}\n";
});

xml_set_element_handler($parser,
    function($parser, $name, $attrs) {
        echo "Start Element: {$name}\n";
    },
    function($parser, $name) {
        echo "End Element: {$name}\n";
    }
);

xml_parse($parser, $xml, true);
xml_parser_free($parser);

output ရလဒ်ခွဲခြမ်းစိတ်ဖြာ

အထက်ပါကုဒ်ကို run ပြီးအောက်ပါအချက်အလက်များသည်ရလဒ်ဖြစ်လိမ့်မည်။

 Start Namespace: prefix = h, uri = http://www.w3.org/TR/html4/
Start Namespace: prefix = f, uri = http://www.w3schools.com/furniture
Start Element: ROOT
Start Element: H:TABLE
Start Element: H:TR
Start Element: H:TD
End Element: H:TD
Start Element: H:TD
End Element: H:TD
End Element: H:TR
End Element: H:TABLE
Start Element: F:TABLE
Start Element: F:NAME
End Element: F:NAME
Start Element: F:WIDTH
End Element: F:WIDTH
Start Element: F:LENGTH
End Element: F:LENGTH
End Element: F:TABLE
End Element: ROOT
End Namespace: prefix = f
End Namespace: prefix = h

Namespace နယ်ပယ်တစ်ခုစတင်သောအခါသက်ဆိုင်ရာအပြောင်းအလဲများကိုအစပျိုးခြင်း, developer များအား namespace ပေါ် မူတည်. မှတ်တမ်းတင်ခြင်း,

လက်တွေ့ကျသောလျှောက်လွှာအကြံပြုချက်များ

  1. Namespace အခြေအနေတွင် stack ကိုတည်ဆောက်ခြင်း - သင်ဟာ XML node များအကြောင်းကိုအထောက်အကူပြုသည့်လက်ရှိတက်ကြွသော namespace ကိုမှတ်တမ်းတင်ရန်အပြောင်းအလဲနဲ့လုပ်ဆောင်မှုအတွက် structure function တွင် stack stack တည်ဆောက်ပုံကိုတည်ဆောက်နိုင်သည်။

  2. ရောနှောပါ 0 င်သောအကြောင်းအရာများကိုကိုင်တွယ်ပါ ။ XML စာရွက်စာတမ်းတစ်ခုသည်အသိုက်ကို NAMS ကိုအသုံးပြုပါက,

  3. SANCAMACE ဒီဇိုင်း - Namespace - သတိထားမိသောခွဲခြမ်းစိတ်ဖြာခြင်းသည်ဆပ်ပြာ, RSS, အက်တမ်စသည့်စသည်တို့ကိုထောက်ပံ့သောစနစ်များအတွက်မရှိမဖြစ်လိုအပ်သည်။

ကောက်ချက်

XML_set_start_start_start_decl_handler နှင့် XML_SESS_ENDOST_END_ENDOST_ENDOST_DECT_DECNST_DECLL_Handler လုပ်ဆောင်ချက်များကို PHP သည်ရှုပ်ထွေးသော namespace အဆောက်အအုံများကိုကိုင်တွယ်ရန်အစွမ်းထက်သောကိရိယာများကိုထောက်ပံ့ပေးသည်။ ဤလုပ်ဆောင်ချက်နှစ်ခုကိုပြောင်းလွယ်ပြင်လွယ်အသုံးပြုမှုသည် developer များက developer များက developer များက developer များကတတိယပါတီဒေတာ interfaces နှင့် standard protocol formats များကိုကိုင်တွယ်ရန်အလွန်အကျိုးရှိသည်။

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်စီးပွားရေး semantics နှင့် namespace ယန္တရားများကိုပေါင်းစပ်ခြင်းက XML ကိုပိုမိုခိုင်မာသည့်နှင့်ထိန်းသိမ်းခြင်းကိုပြုလုပ်နိုင်သည်။ အကယ်. သင်နှင့်သင်ဆက်ဆံနေသော XML သည် https://gitbox.net/api/api/api/api/api/api/api/api/api/plfeed ကဲ့သို့သောပြင်ပစနစ်များမှလာသည်။