Rechercher une fonction PHP

DOMXPath::query

(PHP 5, PHP 7)

DOMXPath::query Évalue l'expression XPath donnée

Description

public DOMXPath::query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = TRUE ]] ) : DOMNodeList

Évalue l'expression expression XPath donnée.

Retour à la première page de Manuel PHP  Table des matières Haut

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.

Retour à la première page de Manuel PHP  Table des matières Haut

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.

Retour à la première page de Manuel PHP  Table des matières Haut

Historique

Version Description
5.3.3 Ajout du paramètre registerNodeNS.

Retour à la première page de Manuel PHP  Table des matières Haut

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";
}
?>

L'exemple ci-dessus va afficher :

Livre trouvé : The Grapes of Wrath, par John Steinbeck
Livre trouvé : The Pearl, par John Steinbeck

Nous pouvons également utiliser le paramètre contextnode pour raccourcir notre expression :

<?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";
}
?>

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-domxpath.query.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut