SUR CETTE PAGE
sort
Syntaxe
sort expression {; case-order "upper-first" | "lower-first"; data-type "text" | "number" | type-name; order "ascending" | "descending"; }
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-type
et 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 |
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.
version 1.1; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; match / { <op-script-results> { var $results = jcs:invoke("get-interface-information"); for-each ($results/physical-interface/name) { sort . { data-type "text"; order "ascending"; } <interface-name> .; } } }
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.