for-each
语法
for-each (expression) {
/* code */
}
/* Syntax added in version 1.1 of the SLAX language.*/
for-each (min ... max) {
/* code */
}
描述
包括一个循环机制,该机制对指定节点集中的每个 XML 元素或整数集中的每个值重复脚本处理。
如果参数是 XPath 表达式,则元素节点由 XPath 表达式的值选择。如果参数是整数集,则迭代运算符 (...) 将生成一个节点序列,其中包含左操作数和右操作数之间的每个整数的值。如果左操作数大于右操作数,则按降序生成数字。对于每次迭代,然后根据代码块中包含的 for-each 指令评估和处理内容。
属性
for-each expression |
XPath 表达式,用于选择要处理的节点。 |
max |
定义整数序列结束值的整数或变量。如果结束值小于起始值,则按降序生成数字。 |
min |
定义整数序列起始值的整数或变量。如果起始值大于结束值,则按降序生成数字。 |
SLAX 示例
以下代码循环 chassis-sub-module 访问部件号子元素等于 750-000610 的每个元素。对于每个匹配项,脚本都会输出一个 <message> 元素,其中包含模块的名称以及子模块的名称和描述。
for-each ($inventory/chassis/chassis-module/
chassis-sub-module[part-number == '750-000610']) {
<message> "Down rev PIC in " _ ../name _ ", " _ name _ ": " _ description;
}
下面的代码循环访问整数 1 到 3。对于每次迭代,代码块都会生成一个 <item> 元素,该元素包含值 item-number 等于集合的当前整数值的属性。
for-each (1 ... 3) {
<item> {
attribute "item-number" {
expr .;
}
}
}
/* Output: <item item-number="1"/><item item-number="2"/><item item-number="3"/> */
发布信息
SLAX 语言 1.0 版中引入的语句。
支持在 SLAX 语言 1.1 版中添加的迭代运算符 (...),Junos OS 12.2 版及更高版本中支持该语言。