DOMXPath::query

(PHP 5, PHP 7, PHP 8)

DOMXPath::queryBelirtilen XPath ifadesini değerlendirir

Açıklama

publicDOMXPath::query(string$ifade, ?DOMNode$bağlamsal_düğüm = null, bool$kaydet = true): DOMNodeList

Belirtilen XPath ifade'sini çözümler.

Bağımsız Değişkenler

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.

kaydet

Seçimlik kaydet bağlamsal düğümün otomatik kütük kaydını önlemek için kullanılabilir.

Dönen Değerler

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.

ifade bozuksa ya da bağlamsal_düğüm geçersizse, DOMXPath::evaluate()false döndürür.

Örnekler

Ö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 bağımsız değişkenini 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";
}
?>

Ayrıca Bakınız

  • DOMXPath::evaluate() - Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir
To Top