DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

DOMXPath::evaluate Evaluates the given XPath expression and returns a typed result if possible

Beschreibung

publicDOMXPath::evaluate(string$expression, ?DOMNode$contextNode = null, bool$registerNodeNS = true): mixed

Executes the given XPath expression and returns a typed result if possible.

Parameter-Liste

expression

The XPath expression to execute.

contextNode

The optional contextNode can be specified for doing relative XPath queries. By default, the queries are relative to the root element.

registerNodeNS

Legt fest, ob die Namensraum-Präfixe innerhalb des Geltungsbereichs des Kontextknotens automatisch im DOMXPath-Objekt registriert werden sollen. Dies kann verwendet werden, damit DOMXPath::registerNamespace() nicht manuell für jeden Namensraum innerhalb des Geltungsbereichs aufgerufen werden muss. Wenn es einen Konflikt zwischen Namensraum-Präfixen gibt, wird nur das in der Reihenfolge nächste Namensraum-Präfix registriert.

Rückgabewerte

Returns a typed result if possible or a DOMNodeList containing all nodes matching the given XPath expression.

If the expression is malformed or the contextNode is invalid, DOMXPath::evaluate() returns false.

Beispiele

Beispiel #1 Getting the count of all the english books

<?php

$doc
= new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// our query is relative to the tbody node
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo
"There are $entries english books\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

There are 2 english books

Siehe auch

To Top