<xsl:namespace-alias> 的示例
此示例演示当 xsl: 前缀为样式表中相同的命名空间 URI 绑定时,如何使用 <xsl:namespace-alias> 将 alt: 前缀声明为文字结果树中 XSLT 命名空间的别名。输出是另一个 XSLT 样式表。
XML 文件 (mymin.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="alias.xsl"?>
<myelem/>
XSLT 文件 (alias.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:alt="http://www.w3.org/1999/XSL/Transform-alternate">
<xsl:namespace-alias stylesheet-prefix="alt" result-prefix="xsl"/>
<xsl:param name="browser" select="'InternetExplorer'"/>
<xsl:template match="/">
<alt:stylesheet>
<xsl:choose>
<xsl:when test="$browser='InternetExplorer'">
<alt:import href="IERoutines.xsl"/>
<alt:template match="/">
<div>
<alt:call-template name="showTable"/>
</div>
</alt:template>
</xsl:when>
<xsl:otherwise>
<alt:import href="OtherBrowserRoutines.xsl"/>
<alt:template match="/">
<div>
<alt:call-template name="showTable"/>
</div>
</alt:template>
</xsl:otherwise>
</xsl:choose>
</alt:stylesheet>
</xsl:template>
</xsl:stylesheet>
JScript 文件 (test.js)
var xmldoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xmldoc.async=false;
xmldoc.load("mymin.xml");
var xsldoc= new ActiveXObject("Msxml2.DOMDocument.6.0");
xsldoc.async = false;
xsldoc.load("alias.xsl");
var outfile = new ActiveXObject("Msxml2.DOMDocument.6.0");
outfile.async=false;
var strResult;
strResult = xmldoc.transformNode(xsldoc);
outfile.loadXML(strResult);
outfile.save("output.xsl");
WScript.Echo("Output.xsl was made.");
尝试一下!
将上面的 XML 文件复制并粘贴到一个文本文件中。在本地驱动器上的某个目录中将该文件另存为 mymin.xml。
将上面的 XSLT 文件复制并粘贴到一个文本文件中。在同一个目录中将该文件另存为 alias.xsl。
将上面的 JScript 列表复制并粘贴到一个文本文件中。在同一个目录中将该文件另存为 test.js。
在中双击 test.js 文件,启动该应用程序。也可以从命令提示符下键入“test.js”。
备注
如果使用的操作系统不是 Windows 2000 或 Windows XP,可能需要安装 Windows 脚本宿主 (wscript.exe)(如果尚未安装)。
以下输出文件 output.xsl 将出现在本地驱动器上。
验证您的输出与下列输出是否相同。
输出
在运行 test.js 时,会在消息框或控制台窗口中看到以下输出:
Output.xsl was made.
处理器还将以下输出流作为 XSLT 文件 output.xsl 输出到存储示例文件的文件夹中。此处为了清楚起见添加了空白。
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="IERoutines.xsl" />
<xsl:template match="/">
<div>
<xsl:call-template name="showTable" />
</div>
</xsl:template>
</xsl:stylesheet>