本页内容
SLAX 概述
样式表语言替代 syntaX (SLAX) 是一种用于编写 Junos OS 提交脚本、操作脚本、事件脚本和 SNMP 脚本的语言。它是可扩展样式表语言转换 (XSLT) 的替代方案。SLAX 具有与 C 和 Perl 类似的语法,但语义与 XSLT 相同。
SLAX 优势
XSLT 是处理 可扩展标记语言 (XML) 的一种强大而有效的工具,非常适合机器到机器之间的通信,但其基于 XML 的语法对复杂程序的开发不方便。
SLAX 有一个遵循 C 和 PERL 样式的简单语法。它提供了一种实用而简洁的代码方式,使您能够创建可读、可维护的提交、操作、事件和 SNMP 脚本。SLAX 从 XML 元素中删除 XPath 表达式和编程指令。XML 尖括号和引号被括号和大括号 ({ }) 取代,它们是 C 和 PERL 的熟悉分隔符。
对于尚未习惯 XSLT 的程序员来说,SLAX 的好处尤为明显,因为 SLAX 使他们能够专注于 XSLT 引入的新编程主题,而不是专注于学习新的语法。例如,SLAX 使您能够:
使用
if
、else if
和else
语句(而非<xsl:choose>
<xsl:if>
元素)将测试表达式放在括号中
( )
使用双等号 (
==
) 测试平等,而不是单等号 (=
)使用花括号显示控制,而不是关闭标记
使用下划线 (
_
) 运算符执行串联,如 PERL 版本 6 中那样使用简单引号 (
" "
) 而不是<xsl:text>
元素编写文本字符串使用与函数定义相等的语法定义命名模板
调用具有与函数调用相等语法的命名模板
简化命名空间声明
减少脚本中的混乱
编写更具可读性脚本
SLAX 的工作原理
SLAX 充当 XSLT 的预处理器。Junos OS 在内部将 SLAX 编程指令(如 if
和 else
语句)转换为等效的 XSLT 指令(例如 <xsl:if>
和 <xsl:choose>
元素)。在此转换后,将调用 XSLT 转换引擎(对于 Junos OS 而言,该引擎是 Junos OS 管理 (mgd) 进程)。
SLAX 不会影响 XSLT 的表现力;它只会使 XSLT 更易于使用底层 SLAX 结构完全是 XSLT 的原生结构。SLAX 不会对 XSLT 引擎添加任何内容。SLAX 解析器解析输入文档并构建与 XML 解析器读取 XSLT 文档时生成的 XML 树完全相同的 XML 树。
图 1 显示了 SLAX 脚本的输入和输出流。

SLAX 资源
表 1 概述了可用于学习 SLAX 和编写 SLAX 脚本的其他资源。
资源 |
Url |
---|---|
SLAX 手册 |
|
SLAX 1.0 的 Junos 自动化参考 |
https://www.juniper.net/documentation/en_US/day-one-books/archive/TW_Junos_Automation_Reference.pdf |
Libslax — SLAX 语言的开源实施 |