在 SLAX 和 XSLT 之间转换脚本
SLAX 是 XSLT 的类似 C 的替代语法,可被视为 XSLT 的预处理器。在 Junos OS 调用 XSLT 处理器之前,软件会将脚本中的任何 SLAX 构造(如 )转换为等效的 XSLT 构造(如if/else if/else
<xsl:choose>
和<xsl:if>
)。有关 SLAX 的详细信息,请参阅 SLAX 概述。
可以使用操作模式命令将使用 request system scripts convert
SLAX 或 XSLT 编写的脚本或部分脚本输入转换为备用语言。熟悉 C 和 PERL 的用户可以将现有的 XSLT 脚本转换为 SLAX,以便更轻松地读取和维护脚本。此外,转换脚本并研究结果有助于学习两种语言之间的差异。
以下各节说明如何将脚本从一种语言转换为另一种语言:
将脚本从 SLAX 转换为 XSLT
要将 SLAX 脚本转换为 XSLT,请发出 request system scripts convert slax-to-xslt
操作模式命令,并指定源文件、目标目录和目标文件(可选)。源脚本是新脚本的基础。源脚本不会被新脚本覆盖。从 Junos OS 12.2 版开始,您还可以添加 partial
转换部分脚本输入的选项。
命令语法为:
user@host> request system scripts convert slax-to-xslt source source/filename destination destination/<filename> <partial>
以下三个示例使用与要转换的脚本类型的默认存储位置相关的源目录和目标目录将脚本从 SLAX 转换为 XSLT:
user@host> request system scripts convert slax-to-xslt source /var/db/scripts/op/script1.slax destination /var/db/scripts/op/script1.xsl conversion complete
user@host> request system scripts convert slax-to-xslt source /var/db/scripts/event/script1.slax destination /var/db/scripts/event/script1.xsl conversion complete
user@host> request system scripts convert slax-to-xslt source /var/db/scripts/commit/script1.slax destination /var/db/scripts/commit/script1.xsl conversion complete
发出 slax-to-xslt
转换命令时, script1.slax 文件在源目录中保持不变,并且名为 script1.xsl 的新脚本将添加到目标目录中。
user@host> file list /var/db/scripts/op script1.slax script1.xsl
如果仅指定目标目录而不指定目标文件名,则生成的文件名为 SLAX-转换-Temp 或 slax-temp ,具体取决于 Junos OS 版本,并具有随机生成的五个字符的字母数字扩展名。
user@host> request system scripts convert slax-to-xslt source /var/db/scripts/op/script1.slax destination /var/db/scripts/op/ conversion complete
user@host> file list /var/db/scripts/op SLAX-Conversion-Temp.SlhIr script1.slax
将脚本从 XSLT 转换为 SLAX
要将 XSLT 脚本转换为 SLAX,请发出 request system scripts convert xslt-to-slax
操作模式命令,并指定源文件、目标目录和目标文件(可选)。源脚本是新脚本的基础。源脚本不会被新脚本覆盖。
命令语法为:
user@host> request system scripts convert xslt-to-slax source source/filename destination destination/<filename> <partial> <version (1.0 | 1.1)>
要转换部分脚本输入,请在命令中包含该 partial
选项。该 version
选项指定将在生成的脚本的版本语句中列出的 SLAX 版本。将版本指定为 1.0 或 1.1。默认值为 1.1。 partial
从 Junos OS 12.2 版开始支持和 version
选项。
以下三个示例使用与要转换的脚本类型的默认存储位置相关的源目录和目标目录将脚本从 XSLT 转换为 SLAX:
user@host> request system scripts convert xslt-to-slax source /var/db/scripts/op/script1.xsl destination /var/db/scripts/op/script1.slax version 1.0 conversion complete
user@host> request system scripts convert xslt-to-slax source /var/db/scripts/event/script1.xsl destination /var/db/scripts/event/script1.slax conversion complete
user@host> request system scripts convert xslt-to-slax source /var/db/scripts/commit/script1.xsl destination /var/db/scripts/commit/script1.slax conversion complete
发出 xslt-to-slax
转换命令时, script1.xsl 文件在源目录中保持不变,并且名为 script1.slax 的新脚本将添加到目标目录中。
user@host> file list /var/db/scripts/op script1.slax script1.xsl
SLAX 脚本样板列出了指定的 SLAX 版本。在此示例中,版本为 1.0。
user@host> file show /var/db/scripts/op/script1.slax /* Machine Crafted with Care (tm) by slaxWriter */ version 1.0; ...
如果仅指定目标目录而不指定目标文件名,则生成的文件名为 SLAX-转换-Temp 或 slax-temp ,具体取决于 Junos OS 版本,并具有随机生成的五个字符的字母数字扩展名。
user@host> request system scripts convert xslt-to-slax source /var/db/scripts/op/script1.xsl destination /var/db/scripts/op/ conversion complete
user@host> file list /var/db/scripts/op slax-temp.Vosnd script1.xsl