Objet XPathResult DOM XML

Le résultat d'une requête XPath.

L'objet XPathResult

L'objet XPathResult représente la valeur d'une expression XPath. Les objets de ce type sont créés par Document.evaluate() Et XPathExpression.evaluate() Retour. Une requête XPath peut être calculée comme une chaîne de caractères, un nombre, une valeur booléenne, un nœud ou une liste de nœuds. L'implémentation XPath peut retourner une liste de nœuds de plusieurs manières, donc cette objet définit une API légèrement plus complexe pour obtenir le résultat réel d'une requête XPath.

Pour utiliser un XPathResult, vérifiez d'abord l'attribut resultType. Il conserve une constante XPathResult. La valeur de cet attribut vous indique quel attribut et quelle méthode doivent être utilisés pour déterminer la valeur du résultat. L'appel d'une méthode ou la lecture d'un attribut non définis pour le resultType actuel entraînera une exception.

Internet Explorer ne prend pas en charge l'API XPathResult. Pour exécuter une requête XPath dans Internet Explorer, voir Node.selectNodes() Et Node.selectSingleNode() .

Constantes de l'objet XPathResult

Les constantes suivantes définissent le type de résultat possible pour une requête XPath. L'attribut resultType de l'objet XPathResult conserve l'une de ces valeurs, pour spécifier quel type de résultat l'objet conserve. Ces constantes sont utilisées avec Document.evaluate() et XPathExpression.evaluate() pour spécifier le type de résultat attendu.

Les constantes et leur signification sont les suivantes :

ANY_TYPE
Transmettez cette valeur à Document.evaluate() ou XPathExpression.evaluate() pour spécifier le type de résultat acceptable. L'attribut resultType ne configure pas cette valeur.
NUMBER_TYPE
numbervalue conserve le résultat.
STRING_TYPE
stringvalue conserve le résultat.
BOOLEAN_TYPE
booleanValue conserve le résultat.
UNORDERED_NODE_ITERATOR_TYPE
Ce résultat est un ensemble de nœuds non ordonnés, accessible en appelant itérerNext() plusieurs fois jusqu'à ce que null soit renvoyé. Pendant ce processus d'itération, le document ne doit pas être modifié.
ORDERED_NODE_ITERATOR_TYPE
Le résultat est une liste de nœuds, classés selon les attributs du document. Vous pouvez accéder à chaque nœud en appelant itérerNext() plusieurs fois jusqu'à ce que null soit renvoyé. Pendant ce processus d'itération, le document ne doit pas être modifié.
UNORDERED_NODE_SNAPSHOT_TYPE
Le résultat est une liste de nœuds d'accès aléatoire. L'attribut snapshotLength spécifie la longueur de la liste, et la méthode snapshotItem() renvoie le nœud à l'index spécifié. Les nœuds peuvent ne pas correspondre à leur ordre d'apparition dans le document. Comme ce résultat est un "instantané", il reste valide même si le document change.
ORDERED_NODE_SNAPSHOT_TYPE
Ce résultat est une liste de nœuds accessible de manière aléatoire, comme UNORDERED_NODE_SNAPSHOT_TYPE, mais cette liste est ordonnée suivant l'ordre du document.
ANY_UNORDERED_NODE_TYPE
L'attribut singleNodeValue fait référence à un nœud correspondant à la requête, ou null s'il n'y a pas de nœud correspondant. Si plusieurs nœuds correspondent à la requête, singleNodeValue peut être n'importe quel nœud correspondant.
FIRST_ORDERED_NODE_TYPE
singleNodeValue conserve le premier nœud du document qui correspond à la requête, ou null s'il n'y a pas de nœud correspondant.

Attributs d'instance de l'objet XPathResult

De nombreuses propriétés de XPathResult ne sont valides que lorsque resultType contient une valeur spécifique. L'accès à des attributs non définis pour le resultType courant entraîne une exception.

booleanValue
Lorsque resultType est de type BOOLEAN_TYPE, sauvegardez la valeur de résultat.
invalidIteratorState
Si resultType est une constante ITERATOR_TYPE et que le document a été modifié, retourne true; il rend l'itérateur invalide car le résultat a déjà été retourné.
numberValue
Lorsque resultType est de type NUMBER_TYPE, sauvegardez la valeur de résultat.
resultType
Utilisez XPath pour déterminer quel type de résultat est retourné. Sa valeur est l'une des constantes énumérées précédemment. La valeur de cette propriété indique quels autres attributs et méthodes peuvent être utilisés.
singleNodeValue
Lorsque resultType est de type XPathResult.ANY_UNORDERED_NODE_TYPE ou XPathResult.FIRST_UNORDERED_NODE_TYPE, sauvegardez la valeur de résultat.
snapshotLength
Lorsque resultType est de type UNORDERED_NODE_SNAPSHOT_TYPE ou ORDERED_NODE_ITERATOR_TYPE, spécifiez le nombre de nœuds retournés. Utilisez cette propriété avec snapshotItem().
stringValue
Conserve la valeur de résultat lorsque resultType est STRING_TYPE.

Méthodes de l'objet XPathResult

Méthode Description
iterateNext() Si resultType est UNORDERED_NODE_ITERATOR_TYPE ou ORDERED_NODE_ITERATOR_TYPE, utilisez cette méthode.
snapshotItem() Retourne le nœud spécifié dans la liste des résultats. Cette méthode ne peut être utilisée que lorsque resultType est UNORDERED_NODE_SNAPSHOT_TYPE ou ORDERED_NODE_SNAPSHOT_TYPE. L'attribut snapshotLength est utilisé avec cette méthode.

Pages associées

Document.evaluate() Et XPathExpression.evaluate()