DOMXPath::query
(PHP 5)
DOMXPath::query — Évalue l'expression XPath donnée
Description
$expression
[, DOMNode $contextnode
[, bool $registerNodeNS
= true
]] )
Évalue l'expression expression
XPath donnée.
Liste de paramètres
-
expression
-
L'expression XPath à exécuter.
-
contextnode
-
Le paramètre optionnel
contextnode
peut être spécifié pour effectuer des requêtes XPath relative. Par défaut, les requêtes sont relatives à l'élément racine. -
registerNodeNS
-
Le paramètre optionnel
registerNodeNS
peut être renseigné pour désactiver l'enregistrement automatique du noeud de contexte.
Valeurs de retour
Retourne un DOMNodeList contenant tous les noeuds
correspondant à l'expression expression
XPath donnée.
Toutes les expressions qui ne retournent pas de noeud retourneront
un DOMNodeList vide.
Si le paramètre expression
est malformé ou
le paramètre contextnode
est invalide,
DOMXPath::query() retournera FALSE
.
Historique
Version | Description |
---|---|
5.3.3 |
Ajout du paramètre registerNodeNS .
|
Exemples
Exemple #1 Récupération de tous les livres anglais
<?php $doc = new DOMDocument; // Nous ne voulons pas nous soucier des espaces blancs $doc->preserveWhiteSpace = false; $doc->Load('book.xml'); $xpath = new DOMXPath($doc); // Nous commençons à l'élément racine $query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]'; $entries = $xpath->query($query); foreach ($entries as $entry) { echo "Livre trouvé {$entry->previousSibling->previousSibling->nodeValue}," . " par {$entry->previousSibling->nodeValue}\n"; } ?>
<?php $doc = new DOMDocument; $doc->preserveWhiteSpace = false; $doc->load('book.xml'); $xpath = new DOMXPath($doc); $tbody = $doc->getElementsByTagName('tbody')->item(0); // notre requête est relative au noeud tbody $query = 'row/entry[. = "en"]'; $entries = $xpath->query($query, $tbody); foreach ($entries as $entry) { echo "Livre trouvé : {$entry->previousSibling->previousSibling->nodeValue}," . " par {$entry->previousSibling->nodeValue}\n"; } ?>
Voir aussi
- DOMXPath::query()