<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 Scripting Host (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>