<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.");

尝试一下!

  1. 将上面的 XML 文件复制并粘贴到一个文本文件中。在本地驱动器上的某个目录中将该文件另存为 mymin.xml

  2. 将上面的 XSLT 文件复制并粘贴到一个文本文件中。在同一个目录中将该文件另存为 alias.xsl

  3. 将上面的 JScript 列表复制并粘贴到一个文本文件中。在同一个目录中将该文件另存为 test.js

  4. 在中双击 test.js 文件,启动该应用程序。也可以从命令提示符下键入“test.js”。

    备注

    如果使用的操作系统不是 Windows 2000 或 Windows XP,可能需要安装 Windows 脚本宿主 (wscript.exe)(如果尚未安装)。

    以下输出文件 output.xsl 将出现在本地驱动器上。

  5. 验证您的输出与下列输出是否相同。

输出

在运行 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>

请参阅

参考

<xsl:import> 元素

<xsl:include> 元素