(PHP 5, PHP 7)
DOMXPath::query — Belirtilen XPath ifadesini değerlendirir
Belirtilen XPath ifade
'sini çözümler.
ifade
Değerlendirilecek XPath ifadesi.
bağlamsal_düğüm
Seçimlik olarak, göreli XPath sorguları yapmak içindir. Öntanımlı olarak sorgular kök elemana göre çözümlenir.
Belirtilen XPath ifade
'si ile eşleşen tüm
düğümleri içeren bir DOMNodeList nesnesi döner.
Hiçbir eşleşme olmamışsa boş bir DOMNodeList
nesnesi döner.
Örnek 1 - Tüm İngilizce kitapları listelemek
<?php
$doc = new DOMDocument;
// Fazladan boşlukları korumak istemiyoruz
$doc->preserveWhiteSpace = false;
$doc->Load('book.xml');
$xpath = new DOMXPath($doc);
// Sorguyu kök elemandan başlatıyoruz
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';
$entries = $xpath->query($query);
foreach ($entries as $entry) {
echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
" by {$entry->previousSibling->nodeValue}\n";
}
?>
Yukarıdaki örneğin çıktısı:
Found The Grapes of Wrath, by John Steinbeck Found The Pearl, by John Steinbeck
İfademizi kısaltmak için bağlamsal_düğüm
değiştirgesini kullanabilirdik:
<?php
$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
$doc->load('book.xml');
$xpath = new DOMXPath($doc);
$tbody = $doc->getElementsByTagName('tbody')->item(0);
// Sorguyu tbody düğümüne göre yapalım
$query = 'row/entry[. = "en"]';
$entries = $xpath->query($query, $tbody);
foreach ($entries as $entry) {
echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
" by {$entry->previousSibling->nodeValue}\n";
}
?>