SLAX 元素作为功能参数
从 Junos OS 版本 14.2 和更高版本中支持的 SLAX 语言版本 1.2 开始,您可以直接使用 SLAX 元素作为功能和模板的参数。功能参数可以是单个元素或一块 SLAX 代码,放置在大括号内,如以下示例所示:
var $a = my:function(<elt>,<max> 15);
var $b = my:test ({
<min> 5;
<max> 15;
if ($step) {
<step> $step;
}
});
var $c = my:write(<content> {
<document> "total.txt";
<size> $file/size;
if (node[@type == "full"]) {
<full>;
}
});
对于模板,您仍需要包含参数名称,但值可以是内联的。例如:
call my:valid($name = <name> $input, $object = {
<min> $min;
<max> $max;
});
主模板
从 Junos OS 版本 14.2 和更高版本中支持的 SLAX 语言版本 1.2 开始, main 该模板在 SLAX 中引入。该 main 模板使您能够处理输入 XML 文档,并为输出层次结构提供顶层元素。该 main 模板等同于使用 match / ,但略为方便。
您可以使用 该 main 语句与输入数据层次结构的顶部匹配,并创建输出层次结构的顶层标记。您可以使用以下两种形式的语句:有或不使用输出标记。当您省略输出元素时, main 后面是一组括号内的语句块,如以下示例所示:
main {
<top> {
<answer> 42;
}
}
该 main 模板还可用于令牌之后 main 的顶级输出元素,如以下示例所示:
main <top> {
<answer> 42;
}
前面两个示例都等同于以下 XSLT 版本:
<xsl:template match="/">
<top>
<answer>42</answer>
</top>
</xsl:template>