Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

sort

Syntaxe

Description

Contrôlez l’ordre dans lequel les déclarations et apply-templates itérer for-each dans la liste de nœuds actuelle. Par défaut, les déclarations et apply-templates considèrent les for-each nœuds dans l’ordre des documents, mais l’instruction sort définit l’ordre avant d’itérer dans la liste des nœuds. Insérez l’énoncé sort immédiatement après l’énoncé for-each ouapply-templates. L’instruction sort n’est traitée que lorsque la boucle est lancée pour la première fois.

L’instruction sort dispose d’une expression XPath en option et de trois paramètres facultatifs : case-order, data-typeet order. L’expression XPath détermine la chaîne de comparaison de chaque nœud utilisée pour le tri. Le script évalue l’expression avec le nœud comme contexte, puis traduit le résultat en chaîne de comparaison pour ce nœud. Si vous ne spécifiez pas d’expression XPath, la valeur par défaut est « . », ce qui permet de comparer le contenu de chaque nœud de la liste. Les opérateurs spécifiques au SLAX tels que == et _ ne peuvent pas être utilisés dans la chaîne d’expression. Si l’instruction sort ne comprend aucun paramètre facultatif, la liste est triée en fonction de la valeur de chaîne de chaque nœud.

L’instruction sort ne trie pas de manière permanente la structure de données XML sous-jacente, mais uniquement l’ordre de la liste de nœuds actuelle utilisée par l’instruction for-each ou apply-templates . Plusieurs sort instructions peuvent être attribuées à une seule for-each ou apply-templates à une seule. Ils sont appliqués, dans l’ordre, jusqu’à ce qu’une différence soit trouvée.

Attributs

expression

Expression XPath qui détermine la chaîne de comparaison de chaque nœud utilisée pour le tri. La valeur par défaut est « . »

case-order

Spécifiez s’il faut trier en minuscule ou en majuscule en premier. Les valeurs acceptables sont « lower-first » ou « upper-first ». La valeur par défaut est « upper-first ».

data-type

Spécifiez le type d’élément, qui détermine si un type numérique, lexical ou autre est effectué. Les valeurs acceptables sont « nombre » et « texte ». La valeur par défaut est « text ».

La définition data-type de « texte » compare les chaînes en fonction de leurs valeurs de caractères (c’est-à-dire du code ASCII), de sorte que « 0 » est inférieur à « 9 », qui est inférieur à « A », qui est inférieur à « Z », qui est inférieur à « a », qui est inférieur à « z ». La définition data-type de « nombre » convertit les chaînes en nombres et les compare numériquement. Avec le tri croissant du texte, « 100 » viendrait avant « 11 » parce que « 0 » a un code ASCII inférieur à « 1 », mais avec le tri croissant des nombres, 11 viendrait avant 100 car 11 est un nombre inférieur à 100.

order

Spécifiez s’il faut trier par ordre croissant ou décroissant. Les valeurs acceptables sont « descendantes » ou « ascendantes ». La valeur par défaut est « ascendante ».

Exemple SLAX

L’exemple de script SLAX suivant exécute la commande API get-interface-information XML Junos et analyse la sortie résultante. La for-each boucle imprime le nom de chaque interface physique sur l’équipement, triée dans l’ordre croissant.

Informations de publication

Déclaration introduite dans la version 1.1 du langage SLAX, qui est prise en charge dans les versions 12.2 et ultérieures de Junos OS.