XPath (XML Path Language) သည် XML စာရွက်စာတမ်းများတွင်သတင်းအချက်အလက်များကိုရှာဖွေရန်အသုံးပြုသောဘာသာစကားဖြစ်သည်။ PHP တွင် XPATH တွင် XML စာရွက်စာတမ်းများကို domxpath class မှတဆင့်မေးမြန်းရန်နှင့်လည်ပတ်ရန်စွမ်းရည်ကိုပေးသည်။ PHP ရှိ XPATH လုပ်ဆောင်ချက်များကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာခြင်းသည် XML သို့မဟုတ် HTML အကြောင်းအရာများကိုကိုင်တွယ်ရန်အလွန်အရေးကြီးသည်။ ဒီဆောင်းပါးက PHP မှာ XPAT ကိုဘယ်လိုသုံးရမလဲဆိုတာကို Basic အသုံးပြုမှုကိုနားလည်အောင်ကူညီပေးနိုင်မယ်ဆိုတာမိတ်ဆက်ပေးလိမ့်မယ်။
PHP တွင် XML စာရွက်စာတမ်းများသည်များသောအားဖြင့် dom (စာရွက်စာတမ်း Object Model) extension များကိုများသောအားဖြင့်အသုံးပြုသည်။ Domxpath သည် XPath မေးမြန်းချက်များကိုပြုလုပ်ရန်အသုံးပြုသည် ပထမ ဦး စွာကျွန်ုပ်တို့သည် XML စာရွက်စာတမ်းတစ်ခုကိုမည်သို့ဖွင့်ရမည်ကိုနားလည်ရန်လိုအပ်သည်။
<?php
// aDOMDocumentကန့်ကွက်
$dom = new DOMDocument();
// ဝန်တင်XMLစာချုပ်စာတမ်း
$dom->load('example.xml'); // ယူဆချက်example.xmlသင်ကိုင်တွယ်လိုသောအရာဖြစ်သည်XMLစာချုပ်စာတမ်း
// ဖန်တီးDOMXPathကန့်ကွက်
$xpath = new DOMXPath($dom);
?>
XPath Query သည် XML document တစ်ခုမှဒြပ်စင်များကိုပြန်လည်ရယူရန်အတွက်တိကျသောနည်းလမ်းဖြစ်သည်။ သငျသညျ domxpath အတန်းအစားနည်းမှတဆင့်ကွဲပြားခြားနားသောမေးမြန်းချက်အမျိုးအစားများကို execute နိုင်ပါတယ်။
သင်၏ XML စာရွက်စာတမ်းတွင် <book> element များပါ 0 င်ပါကအောက်ပါအတိုင်းအောက်ပါတို့သည် <book> elements အားလုံးကိုရယူရန်ကုဒ်ဖြစ်သည်။
<?php
$query = "//book"; // XPathညှစ်ခြင်း,အားလုံးဖော်ပြသည်<book>ဓါတ်
$books = $xpath->query($query);
foreach ($books as $book) {
echo $book->nodeValue . "\n"; // တစ်ခုချင်းစီကိုစာအုပ်၏အကြောင်းအရာ output ကို
}
?>
အခြေအနေများအပေါ် အခြေခံ. တိကျသောဒြပ်စင်များကိုလည်းသင်စစ်ဆေးနိုင်သည်။ ဥပမာအားဖြင့်, စာအုပ်များအားလုံးကို 50 ထက်ကြီးသောစျေးနှုန်းများဖြင့်ထုတ်ယူပါ။
<?php
$query = "//book[price>50]"; // XPathညှစ်ခြင်း,အဆိုပါ filter စျေးနှုန်းထက်သာ။ ကြီးမြတ်သည်50စာအုပ်များ
$expensiveBooks = $xpath->query($query);
foreach ($expensiveBooks as $book) {
echo $book->nodeValue . "\n"; // 输出满足条件စာအုပ်များ名
}
?>
Element တစ်ခု၏ attribute တန်ဖိုးကိုရရန်လိုအပ်ပါက @ သင်္ကေတမှတစ်ဆင့်၎င်းကိုရယူနိုင်သည်။ ဥပမာအားဖြင့်, စာအုပ်တစ်အုပ်စီ၏ ID attribute ကိုရယူပါ။
<?php
$query = "//book/@id"; // အားလုံးရယူပါ<book>ဓါတ်的idဉစ်စာပစ္စည်းများ
$ids = $xpath->query($query);
foreach ($ids as $id) {
echo $id->nodeValue . "\n"; // output ကိုID
}
?>
တခါတရံတွင် XML ဖိုင်များထက် HTML ဖိုင်များကိုကိုင်တွယ်ရန်လိုအပ်နိုင်သည်။ PHP ၏ DomDocument Class သည် HTML အကြောင်းအရာများကိုတင်ခြင်းကိုအထောက်အကူပြုသည်။ အနည်းငယ်ပြုပြင်ရန်သာလိုအပ်သည်။
<?php
// aDOMDocumentကန့်ကွက်
$dom = new DOMDocument();
// ဝန်တင်HTMLကေြနပ်သော
@$dom->loadHTMLFile('example.html'); // ယူဆချက်example.htmlမင်းကမင်းပဲHTMLစာချုပ်စာတမ်း
// ဖန်တီးDOMXPathကန့်ကွက်
$xpath = new DOMXPath($dom);
// အသုံးပြုXPathမေးမြန်းHTMLဓါတ်
$query = "//a[@href]"; // အားလုံးရယူပါ带有hrefဉစ်စာပစ္စည်းများ的<a>ကပ်တံဆိပ်
$links = $xpath->query($query);
foreach ($links as $link) {
echo $link->getAttribute('href') . "\n"; // လင့်ခ်အားလုံး outputhrefဉစ်စာပစ္စည်းများ
}
?>
လက်တွေ့ကျသော application များအရ XPather Queration သည်အထူးအက္ခရာများသို့မဟုတ်အမည်များပါ 0 င်သော XML စာရွက်စာတမ်းများကိုကြုံတွေ့ရနိုင်သည်။ ဤအချိန်တွင်ကျွန်ုပ်တို့သည် namespace ကိုကိုင်တွယ်ရန် register ည့်သည် () domxthace ၏နည်းလမ်းကိုအသုံးပြုရန်လိုအပ်သည်။ ဥပမာအားဖြင့်:
<?php
$dom->load('example_with_namespace.xml');
$xpath = new DOMXPath($dom);
// namespace ကိုမှတ်ပုံတင်ပါ
$xpath->registerNamespace('ns', 'http://www.example.com/namespace');
// အသုံးပြု命名空间မေးမြန်း
$query = "//ns:book"; // မေးမြန်း带有命名空间的<book>ဓါတ်
$books = $xpath->query($query);
foreach ($books as $book) {
echo $book->nodeValue . "\n";
}
?>
domxpath :: query () ကို အသုံးပြုသော အခါ ,
HTML, Domdocument :: Loadhtmm () HTML format အမှားများကိုထုတ်ပြန်သည့်အခါ HTML format အမှားများကိုလျစ်လျူရှုပါက 0 န် ဆောင်မှုသည် မှားယွင်းသော အမှားအယွင်းများကိုပြန်ပို့ပါ။
PHP ၏ XPhath function သည်အလွန်အစွမ်းထက်ပြီး XML နှင့် HTML စာရွက်စာတမ်းများရှိ element များကိုထိရောက်စွာမေးမြန်းခြင်းနှင့်လည်ပတ်ရန်ကူညီနိုင်သည်။ domxpath class မှတစ်ဆင့်ကျွန်ုပ်တို့သည်စာရွက်စာတမ်းမှအချက်အလက်များကိုအလွယ်တကူထုတ်ယူနိုင်ပြီးခြွင်းချက်စစ်ထုတ်ခြင်း, ဤအခြေခံအသုံးပြုမှုများကိုကျွမ်းကျင်ပြီးသည့်နောက်တွင်သင်သည် XML နှင့် HTML ကိုစစ်သားများအားတကယ့်စီမံကိန်းများအတွက်ကိုင်တွယ်ခြင်း၏ထိရောက်မှုကိုများစွာတိုးတက်စေနိုင်သည်။