(PHP 5 >= 5.1.0, PHP 7, PHP 8)
DOMXPath::evaluate — Évalue une expression XPath donnée et retourne un résultat typé si possible
$expression
, ?DOMNode $contextNode
= null
, bool $registerNodeNS
= true
): mixed
Exécute l'expression XPath expression
et retourne un résultat typé si possible.
expression
L'expression XPath à exécuter.
contextNode
Le paramètre optionnel contextNode
peut être
spécifié pour effectuer des requêtes XPath relatives. Par défaut, les requêtes
sont relatives à l'élément root.
registerNodeNS
Indique s'il faut automatiquement enregistrer les préfixes de namespace en vigueur du nœud de contexte dans l'objet DOMXPath. Cela peut être utilisé pour éviter d'avoir à appeler manuellement DOMXPath::registerNamespace() pour chaque namespace en vigueur. En cas de conflit de préfixes de namespace, seul le préfixe de namespace descendant le plus proche est enregistré.
Les erreurs suivantes peuvent survenir lors de l'utilisation d'une expression qui invoque des callbacks PHP.
php:function
est utilisée et que le nom du gestionnaire
n'est pas une chaîne de caractères.
Retourne un résultat typé si possible ou un DOMNodeList
contenant tous les nœuds correspondant à l'expression XPath
expression
.
Si le paramètre expression
est mal formé
ou bien si le paramètre contextNode
est invalide,
la méthode DOMXPath::evaluate() retournera false
.
Exemple #1 Récupération du nombre total de livres anglais
<?php
$doc = new DOMDocument;
$doc->load('examples/book-dcobook.xml');
$xpath = new DOMXPath($doc);
$tbody = $doc->getElementsByTagName('tbody')->item(0);
// notre requête est relative au nœud tbody
$query = 'count(row/entry[. = "en"])';
$entries = $xpath->evaluate($query, $tbody);
echo "Il y a $entries livres anglais\n";
?>
L'exemple ci-dessus va afficher :
Il y a 2 livres anglais