(PHP 5)
DOMXPath::query — Belirtilen XPath ifadesini değerlendirir
Belirtilen XPath ifade'sini çözümler.
Değerlendirilecek XPath ifadesi.
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";
}
?>