Partager via


Spécification d'un test de nœud dans le chemin d'accès d'emplacement (SQLXML 4.0)

S’applique à : SQL ServerAzure SQL Database

Un test de nœud spécifie le type de nœud sélectionné par le niveau d'emplacement. Chaque axe (enfant, parent, attribut ou auto) a un type de nœud principal. Pour l’axe des attributs, le type de nœud principal est< attribut>. Pour les axes parent, enfant et auto, le type de nœud principal est l’élément<>.

Remarque

Le test de nœud générique * (par exemple, child::*) n'est pas pris en charge.

Test de nœud : exemple 1

Le chemin d’accès child::Customer à l’emplacement sélectionne les <enfants de l’élément Client> du nœud de contexte.

Dans cet exemple, child est l'axe et Customer est le test de nœud. Le type de nœud principal de l’axe enfant est l’élément><. Par conséquent, le test de nœud a la valeur TRUE si le nœud Customer> est un nœud d’élément><.< Si le nœud de contexte n’a pas d’enfants <Client> , un ensemble vide de nœuds est retourné.

Test de nœud : exemple 2

Le chemin d’accès attribute::CustomerID à l’emplacement sélectionne l’attribut CustomerID du nœud de contexte.

Dans l’exemple, attribute il s’agit de l’axe et CustomerID du test de nœud. Le type de nœud principal de l’axe des attributs est <attribut>. Par conséquent, le test de nœud a la valeur TRUE si CustomerID est un nœud d’attribut><. Si le nœud de contexte n’a pas CustomerID, un ensemble vide de nœuds est retourné.

Remarque

Dans cette implémentation de XPath, si une étape d’emplacement fait référence à un élément> ou à un type d’attribut <><qui n’est pas déclaré dans le schéma, une erreur est générée. Dans une implémentation de XPath dans MSXML, un ensemble de nœud vide est renvoyé.

Syntaxe abrégée des axes

La syntaxe abrégée suivante est prise en charge pour le chemin d'accès d'emplacement :

  • attribute:: peut être abrégé en @.

    Le chemin d'accès d'emplacement Customer[@CustomerID="ALFKI"] est identique à child::Customer[attribute::CustomerID="ALFKI"].

  • child:: peut être omis dans un niveau d'emplacement.

    Ainsi, l’enfant est l’axe par défaut. Le chemin d'accès d'emplacement Customer/Order est identique à child::Customer/child::Order.

  • self::node() peut être abrégé en un point et parent::node() peut être abrégé en deux points (..).