DOMXPath::query Évalue l'expression XPath donnée &reftitle.description; public mixedDOMXPath::query stringexpression DOMNodenullcontextNode&null; boolregisterNodeNS&true; Évalue l'expression expression XPath donnée. &reftitle.parameters; 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 nœud de contexte. &reftitle.returnvalues; Retourne un DOMNodeList contenant tous les nœuds correspondant à l'expression expression XPath donnée. Toutes les expressions qui ne retournent pas de nœud retourneront un DOMNodeList vide. Si le paramètre expression est malformé ou le paramètre contextNode est invalide, DOMXPath::query retournera &false;. &reftitle.examples; Récupération de tous les livres anglais 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"; } ?> ]]> &example.outputs; Nous pouvons également utiliser le paramètre contextNode pour raccourcir notre expression : preserveWhiteSpace = false; $doc->load('book.xml'); $xpath = new DOMXPath($doc); $tbody = $doc->getElementsByTagName('tbody')->item(0); // notre requête est relative au nœud 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"; } ?> ]]> &reftitle.seealso; DOMXPath::query