PHP တွင် XML ကိုထုတ်ယူသောအခါ XPATH မေးမြန်းချက်များကို execute လုပ်ရန် domxpath class ကိုအသုံးပြုသည်။ Registerx စာနာမှု နည်းစနစ်သည် XPAPTECTIONS တွင်အသုံးပြုရန်အတွက်တိကျသောရှေ့ဆက်နှင့်အတူ namespace နှင့်ဆက်စပ်ရန်ခွင့်ပြုသည်။ သို့သော်အချို့သောအခြေအနေများတွင်အချို့သောအခြေအနေများသို့မဟုတ်ပြင်ဆင်မှုများအပေါ် အခြေခံ. URI တန်ဖိုးကိုထုတ်ပေးရန်လိုအပ်သည့်အချိန်တွင် Namespace Uri ကို dynamically rii ကိုသတ်မှတ်လိုသည်။ ဤဆောင်းပါးသည် Registerxpathernesnesnesnesnesnesnesnesnesnesnesnesness တွင် variable များမည်သို့ပြောင်းလဲနိုင်မည်ကိုရှင်းပြပါမည်။
ပထမ ဦး စွာ Regisnegatherneshace ၏အခြေခံအသုံးပြုမှုကိုသုံးသပ်ကြည့်ကြစို့။ ဤနည်းလမ်းသည်ကျွန်ုပ်တို့အား XPathery အတွက် namespace ကိုမှတ်ပုံတင်ရန်ခွင့်ပြုသည်။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
$xpath->registerXPathNamespace($prefix, $uri);
$ ရှေ့ဆက် - အသုံးပြုရန် namespace ရှေ့ဆက်။
$ URI : namespace ၏ Uri ။
ဥပမာအားဖြင့်, ကျွန်ုပ်တို့တွင်အောက်ပါ XML စာရွက်စာတမ်းရှိသည်ဆိုပါစို့ဆိုပါစို့။
<root xmlns:example="http://www.example.com">
<example:item>Item 1</example:item>
<example:item>Item 2</example:item>
</root>
အောက်ပါကုဒ်ကို အသုံးပြု. namespace ကိုမှတ်ပုံတင်နိုင်သည် -
$dom = new DOMDocument();
$dom->loadXML($xmlString);
$xpath = new DOMXPath($dom);
$xpath->registerXPathNamespace('example', 'http://www.example.com');
ဤအရာသည်ဥပမာအားဖြင့် <item> element ကို သုံး. ဥပမာ - item ကို သုံးနိုင်သည်။
တစ်ခါတစ်ရံတွင် namespace ၏ URI သည်ပြင်ပဒေတာအရင်းအမြစ်မှ dynamically dynamically dynamically လုပ်သို့မဟုတ်တင်ရန်လိုအပ်နိုင်သည်။ ဤကိစ္စတွင်ကျွန်ုပ်တို့သည် Registerxpathernesnesness ကို မခေါ်မီ Uri ကို dynamically တည်ဆောက်နိုင်သည်။
ကျွန်ုပ်တို့တွင် configuration file or database ရှိသည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည် URIS ကိုတက်ကြွစွာထုတ်လုပ်နိုင်ပြီးလက်ရှိပတ်ဝန်းကျင်အပေါ် အခြေခံ. အမည်များကိုမှတ်ပုံတင်နိုင်သည်။
// အဆိုပါ configuration ကိုကနေတင်ဆောင်ယူဆ URI
$environment = 'production'; // ဖြစ်နိုင်ပါတယ် 'development', 'production', etc.
$namespaceConfig = [
'development' => 'http://dev.example.com',
'production' => 'http://www.example.com',
'staging' => 'http://staging.example.com',
];
// dynamic ဝယ်ယူ URI
$uri = $namespaceConfig[$environment];
// namespace ကိုမှတ်ပုံတင်ပါ
$xpath->registerXPathNamespace('example', $uri);
ဤဥပမာတွင် ဒေါ်လာပတ် 0 န်းကျင်ဆိုင်ရာ variable ၏တန်ဖိုးကို အခြေခံ. ကျွန်ုပ်တို့သည်သက်ဆိုင်ရာ Namespace Uri ကို dynamally select လုပ်ပြီး XPathery တွင်မှတ်ပုံတင်ပါ။
အကယ်. Namespace Urii ကိုပြင်ပအခြေအနေများအပေါ် အခြေခံ. အခြေခံအရပြုလုပ်ရန်လိုအပ်ပါက (ဥပမာအားဖြင့်လက်ရှိဒိုမိန်းအမည်ကိုရယူရန်အတွက် PHP ၏ $ _server variable ကိုသုံးနိုင်သည်။
// dynamic ဝယ်ယူ当前域名作为命名空间的一部分
$currentDomain = $_SERVER['HTTP_HOST']; // လက်ရှိဒိုမိန်းအမည်ကိုရယူပါ
$uri = 'http://' . $currentDomain . '/namespace';
// namespace ကိုမှတ်ပုံတင်ပါ
$xpath->registerXPathNamespace('example', $uri);
ဤဥပမာတွင် Namespace ၏ URI သည်လက်ရှိဒိုမိန်းအမည်ကို အခြေခံ. အခြေခံ. ထုတ်ပေးလိမ့်မည်။
dynamic namespace ကိုအောင်မြင်စွာမှတ်ပုံတင်ပြီးသည်နှင့်၎င်းကို XPathery တွင်သုံးနိုင်သည်။ ဥပမာအားဖြင့်:
$query = '//example:item'; // namespace ကို query <item> ဓါတ်
$items = $xpath->query($query);
foreach ($items as $item) {
echo $item->nodeValue . "\n";
}
PHP တွင် RegisterxPathaceS ကို အသုံးပြု. Namespace ကိုမှတ်ပုံတင်သည့်အခါ URI ကိုတက်ကြွစွာတည်ဆောက်ခြင်းဖြင့်အစီအစဉ်ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ဖြစ်စေနိုင်သည်။ လက်ရှိပတ် 0 န်းကျင်နှင့်ပြင်ပအခြေအနေများအပေါ် အခြေခံ. configuration file တစ်ခုသို့မဟုတ်ထုတ်လုပ်ခြင်းကိုတင်ခြင်းရှိမရှိ Dynamic Namespace URIS သည်ကျွန်ုပ်တို့၏ XPath မေးမြန်းချက်များအတွက်စိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
အထက်ပါဥပမာနှင့်အတူ Namespace Uri ကိုပုံမှန်ထုတ်လွှင့်ပြီး domxpate တွင်မှတ်ပုံတင်ရန်နှင့် domxpath တွင်မှတ်ပုံတင်ရန်နှင့် domxpath တွင်မှတ်ပုံတင်ရန်, XML ကိုပြုပြင်သည့်အခါ namespace ကိုပိုမိုထိရောက်စွာစီမံခန့်ခွဲနိုင်သည်။