for-each
Syntaxe
for-each (expression) { /* code */ }
/* Syntax added in version 1.1 of the SLAX language.*/ for-each (min ... max) { /* code */ }
Description
Incluez un mécanisme de bouclage qui répète le traitement de script pour chaque élément XML de l’ensemble de nœuds spécifié ou chaque valeur de l’ensemble d’entiers.
S’il s’agit d’une expression XPath , les noeuds d’élément sont sélectionnés par la valeur de l’expression XPath. Si l’argument est un ensemble entier, l’opérateur d’itération (...) génère une séquence de noeuds avec la valeur de chaque entier entre les opérandes gauche et droit. Si l’opérande gauche est supérieur à l’opérande droit, les nombres sont générés par ordre décroissant. Pour chaque itération, les contenus sont ensuite évalués, traités selon les instructions contenues dans le bloc de for-each
code.
Attributs
for-each expression |
XPath qui sélectionne les noeuds à traiter. |
max |
Entier ou variable qui définit la valeur de fin de la séquence d’entiers. Si la valeur de fin est inférieure à la valeur de départ, les nombres sont générés par ordre décroissant. |
min |
Entier ou variable qui définit la valeur de départ de la séquence d’entiers. Si la valeur de début est supérieure à la valeur de fin, les nombres sont générés par ordre décroissant. |
Exemple SLAX
Le code suivant effectue une itération sur chaque chassis-sub-module
élément dont le numéro de pièce est un élément enfant égal à 750-000610. Pour chaque correspondance, le script génère un <message>
élément avec le nom du module ainsi que le nom et la description du sous-module.
for-each ($inventory/chassis/chassis-module/ chassis-sub-module[part-number == '750-000610']) { <message> "Down rev PIC in " _ ../name _ ", " _ name _ ": " _ description; }
Le code suivant effectue une itération sur les entiers 1 à 3. Pour chaque itération, le bloc de code génère un <item>
élément, qui contient l’attribut item-number
avec une valeur égale à la valeur entière courante de l’ensemble.
for-each (1 ... 3) { <item> { attribute "item-number" { expr .; } } } /* Output: <item item-number="1"/><item item-number="2"/><item item-number="3"/> */
Exemples d’utilisation
Informations sur la version
Déclaration introduite dans la version 1.0 du langage SLAX.
La prise en charge de l’opérateur d’itération (...) a été ajoutée dans la version 1.1 du langage SLAX, qui est prise en charge dans Junos OS version 12.2 et ultérieures.