From c05efa8d7ae464235cf83d7c0956e42dc6974103 Mon Sep 17 00:00:00 2001 From: julieng Date: Sat, 2 Oct 2021 17:20:14 +0200 Subject: move *.html to *.md --- files/fr/web/api/document/evaluate/index.md | 161 ++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 files/fr/web/api/document/evaluate/index.md (limited to 'files/fr/web/api/document/evaluate/index.md') diff --git a/files/fr/web/api/document/evaluate/index.md b/files/fr/web/api/document/evaluate/index.md new file mode 100644 index 0000000000..03cc732e3e --- /dev/null +++ b/files/fr/web/api/document/evaluate/index.md @@ -0,0 +1,161 @@ +--- +title: document.evaluate +slug: Web/API/Document/evaluate +tags: + - API + - DOM + - Méthode + - Reference + - XPath +translation_of: Web/API/Document/evaluate +--- +

{{ ApiRef("DOM") }}

+ +

La méthode evaluate() renvoie un {{domxref("XPathResult")}} basé sur une expression XPath et d'autres paramètres donnés.

+ +

Syntaxe

+ +
var xpathResult = document.evaluate(
+ xpathExpression,
+ contextNode,
+ namespaceResolver,
+ resultType,
+ result
+);
+ + + +

Exemples

+ +
 var  headings  =  document .  evaluate  ( " / html / body //h2", document, null, XPathResult.ANY_TYPE, null);
+ /* Cherche le document pour tout élément h2.
+ * Le résultat sera probablement un itérateur de noeuds non ordonné. */
+ var  thisHeading  =  headings .  iterateNext  (  )  ;
+ var  alertText  =   "Level 2 headings in this document are:\n"  ;
+ while   ( thisHeading )   {
+  alertText  +  =  thisHeading . textContent  +   "\n"  ;
+  thisHeading  =  headings .  iterateNext  (  )  ;
+ }
+ alert  ( alertText )  ;   // Alerte le texte de tout élément h2 
+ +

Note : dans l'exemple ci-dessus, un XPath plus verbeux est préféré aux raccourcis communs tels que //h2. Généralement, des sélecteurs XPath plus spécifiques, comme dans l'exemple ci-dessus, améliorent de façon significative les performances, en particulier pour les documents très volumineux. C'est parce que l'évaluation de la requête ne perd pas de temps à visiter des noeuds inutiles. L'utilisation de // est généralement lente car elle visite tous les nœuds de la racine et tous les sous-nœuds à la recherche de correspondances possibles.

+ +

Une optimisation supplémentaire peut être obtenue en utilisant soigneusement le paramètre de contexte. Par exemple, si vous savez que le contenu que vous recherchez se trouve quelque part dans la balise body, vous pouvez utiliser ceci :

+ +
document .  evaluate  ( " .  //h2", document.body, null, XPathResult.ANY_TYPE, null); 
+ +

Remarquez ci-dessus,  document.body a été utilisé comme contexte plutôt que comme document, de sorte que le XPath commence à partir de l'élément body. (Dans cet exemple, le "." est important pour indiquer que l'interrogation doit commencer à partir du noeud contextuel, document.body . Si le "." est omis (en quittant //h2), la requête démarrera à partir du noeud racine ( html) ce qui serait plus inutile.)

+ +

Voir Introduction à l'utilisation de XPath avec JavaScript  pour plus d'informations.

+ +

Notes

+ + + +

Types de résultats

+ +

Ce sont des valeurs prises en charge pour le paramètre resultType de la méthode evaluate :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Type de résultatValeurDescription
ANY_TYPE0Quel que soit le type, résulte naturellement de l'expression donnée.
NUMBER_TYPE1Un ensemble de résultats contenant un seul nombre. Utile, par exemple, dans une expression XPath utilisant la fonction count().
STRING_TYPE2Un ensemble de résultats contenant une seule chaîne de caractères.
BOOLEAN_TYPE3Un ensemble de résultats contenant une seule valeur booléenne. Utile pour, par exemple, une expression XPath utilisant la fonction not().
UNORDERED_NODE_ITERATOR_TYPE4Un ensemble de résultats contenant tous les nœuds correspondant à l'expression. Les nœuds de cet ensemble ne sont pas nécessairement dans le même ordre que celui de leur apparition dans le document.
ORDERED_NODE_ITERATOR_TYPE5Un ensemble de résultats contenant tous les noeuds correspondant à l'expression. Les nœuds de cet ensemble sont dans le même ordre que celui de leur apparition dans le document .
UNORDERED_NODE_SNAPSHOT_TYPE6Un ensemble de résultats contenant des instantanés de tous les nœuds correspondant à l'expression. Les nœuds de cet ensemble ne sont pas nécessairement dans le même ordre que celui de leur apparition dans le document .
ORDERED_NODE_SNAPSHOT_TYPE7Un ensemble de résultats contenant des instantanés de tous les nœuds correspondant à l'expression. Les nœuds de cet ensemble sont dans le même ordre que celui de leur apparition dans le document .
ANY_UNORDERED_NODE_TYPE8Un ensemble de résultats contenant un seul nœud correspondant à l'expression. Le noeud n'est pas nécessairement le premier noeud du document qui correspond à l'expression.
FIRST_ORDERED_NODE_TYPE9Un ensemble de résultats contenant le premier nœud du document qui correspond à l'expression.
+ +

Les résultats des types NODE_ITERATOR contiennent des références aux noeuds du document. La modification d'un nœud invalidera l'itérateur. Après avoir modifié un nœud, tenter de parcourir les résultats entraînera une erreur.

+ +

Les résultats des types NODE_SNAPSHOT sont des instantanés, qui sont essentiellement des listes de nœuds correspondants. Vous pouvez apporter des modifications au document en modifiant les nœuds de capture instantanée. La modification du document n'invalide pas l'instantané. Toutefois, si le document est modifié, l'instantané peut ne pas correspondre à l'état actuel du document, car les nœuds peuvent avoir été déplacés, modifiés, ajoutés ou supprimés.

+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName("DOM3 XPath", "xpath.html#XPathEvaluator-evaluate", "Document.evaluate")}}{{Spec2("DOM3 XPath")}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{Compat("api.Document.evaluate")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf