လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ၏ XPATH လုပ်ဆောင်ချက်ကိုမည်သို့အသုံးပြုရမည်နည်း။ အတွေ့အကြုံမရှိသေးသောအခြေခံအသုံးပြုမှုကိုသုံးသပ်ခြင်း

PHP ၏ XPATH လုပ်ဆောင်ချက်ကိုမည်သို့အသုံးပြုရမည်နည်း။ အတွေ့အကြုံမရှိသေးသောအခြေခံအသုံးပြုမှုကိုသုံးသပ်ခြင်း

gitbox 2025-06-08

XPath (XML Path Language) သည် XML စာရွက်စာတမ်းများတွင်သတင်းအချက်အလက်များကိုရှာဖွေရန်အသုံးပြုသောဘာသာစကားဖြစ်သည်။ PHP တွင် XPATH တွင် XML စာရွက်စာတမ်းများကို domxpath class မှတဆင့်မေးမြန်းရန်နှင့်လည်ပတ်ရန်စွမ်းရည်ကိုပေးသည်။ PHP ရှိ XPATH လုပ်ဆောင်ချက်များကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာခြင်းသည် XML သို့မဟုတ် HTML အကြောင်းအရာများကိုကိုင်တွယ်ရန်အလွန်အရေးကြီးသည်။ ဒီဆောင်းပါးက PHP မှာ XPAT ကိုဘယ်လိုသုံးရမလဲဆိုတာကို Basic အသုံးပြုမှုကိုနားလည်အောင်ကူညီပေးနိုင်မယ်ဆိုတာမိတ်ဆက်ပေးလိမ့်မယ်။

1 ။ PHP ၏ dom နှင့် domxpath အတန်းများကိုနားလည်ပါ

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);
?>

2 ။ XPathery ကိုအခြေခံ

XPath Query သည် XML document တစ်ခုမှဒြပ်စင်များကိုပြန်လည်ရယူရန်အတွက်တိကျသောနည်းလမ်းဖြစ်သည်။ သငျသညျ domxpath အတန်းအစားနည်းမှတဆင့်ကွဲပြားခြားနားသောမေးမြန်းချက်အမျိုးအစားများကို execute နိုင်ပါတယ်။

2.1 ဒြပ်စင်အားလုံးကိုရယူပါ

သင်၏ XML စာရွက်စာတမ်းတွင် <book> element များပါ 0 င်ပါကအောက်ပါအတိုင်းအောက်ပါတို့သည် <book> elements အားလုံးကိုရယူရန်ကုဒ်ဖြစ်သည်။

 <?php
$query = "//book";  // XPathညှစ်ခြင်း,အားလုံးဖော်ပြသည်<book>ဓါတ်
$books = $xpath->query($query);

foreach ($books as $book) {
    echo $book->nodeValue . "\n";  // တစ်ခုချင်းစီကိုစာအုပ်၏အကြောင်းအရာ output ကို
}
?>

2.2 အခြေအနေရှာဖွေမှုကိုသုံးပါ

အခြေအနေများအပေါ် အခြေခံ. တိကျသောဒြပ်စင်များကိုလည်းသင်စစ်ဆေးနိုင်သည်။ ဥပမာအားဖြင့်, စာအုပ်များအားလုံးကို 50 ထက်ကြီးသောစျေးနှုန်းများဖြင့်ထုတ်ယူပါ။

 <?php
$query = "//book[price>50]";  // XPathညှစ်ခြင်း,အဆိုပါ filter စျေးနှုန်းထက်သာ။ ကြီးမြတ်သည်50စာအုပ်များ
$expensiveBooks = $xpath->query($query);

foreach ($expensiveBooks as $book) {
    echo $book->nodeValue . "\n";  // 输出满足条件စာအုပ်များ名
}
?>

2.3 element တစ်ခု၏ attribute တွေကိုရယူပါ

Element တစ်ခု၏ attribute တန်ဖိုးကိုရရန်လိုအပ်ပါက @ သင်္ကေတမှတစ်ဆင့်၎င်းကိုရယူနိုင်သည်။ ဥပမာအားဖြင့်, စာအုပ်တစ်အုပ်စီ၏ ID attribute ကိုရယူပါ။

 <?php
$query = "//book/@id";  // အားလုံးရယူပါ<book>ဓါတ်的idဉစ်စာပစ္စည်းများ
$ids = $xpath->query($query);

foreach ($ids as $id) {
    echo $id->nodeValue . "\n";  // output ကိုID
}
?>

3 ။ HTML စာရွက်စာတမ်းများတွင် XPath Query ကိုမည်သို့ကိုင်တွယ်ရမည်နည်း

တခါတရံတွင် 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ဉစ်စာပစ္စည်းများ
}
?>

4 ။ အထူးအက္ခရာများနှင့်အမည်များကိုကိုင်တွယ်ပါ

လက်တွေ့ကျသော 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";
}
?>

5 ။ မှတ်စုဖို့အရာ

  • domxpath :: query () ကို အသုံးပြုသော အခါ ,

  • HTML, Domdocument :: Loadhtmm () HTML format အမှားများကိုထုတ်ပြန်သည့်အခါ HTML format အမှားများကိုလျစ်လျူရှုပါက 0 န် ဆောင်မှုသည် မှားယွင်းသော အမှားအယွင်းများကိုပြန်ပို့ပါ။

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

PHP ၏ XPhath function သည်အလွန်အစွမ်းထက်ပြီး XML နှင့် HTML စာရွက်စာတမ်းများရှိ element များကိုထိရောက်စွာမေးမြန်းခြင်းနှင့်လည်ပတ်ရန်ကူညီနိုင်သည်။ domxpath class မှတစ်ဆင့်ကျွန်ုပ်တို့သည်စာရွက်စာတမ်းမှအချက်အလက်များကိုအလွယ်တကူထုတ်ယူနိုင်ပြီးခြွင်းချက်စစ်ထုတ်ခြင်း, ဤအခြေခံအသုံးပြုမှုများကိုကျွမ်းကျင်ပြီးသည့်နောက်တွင်သင်သည် XML နှင့် HTML ကိုစစ်သားများအားတကယ့်စီမံကိန်းများအတွက်ကိုင်တွယ်ခြင်း၏ထိရောက်မှုကိုများစွာတိုးတက်စေနိုင်သည်။