共用方式為


<xsl:with-param> 元素

將參數傳到範本。

<xsl:with-param
  name = QName
  select = Expression
</xsl:with-param>

屬性

項目資訊

發生次數

無限制

父項目

xsl:apply-templatesxsl:call-template

項目子系

xsl:apply-templatesxsl:attributexsl:call-templatexsl:choosexsl:commentxsl:copyxsl:copy-ofxsl:elementxsl:for-eachxsl:ifxsl:processing-instructionxsl:textxsl:value-ofxsl:variable

備註

name 屬性 (Attribute) 是必要項。 它可以指定參數的名稱。 其參數是要取代的繫結所屬之值的變數。

在 <xsl:call-template> 及 <xsl:apply-templates> 中允許使用 <xsl:with-param> 項目。

參數值的指定方法和 <xsl:variable> 及 <xsl:param> 的指定方法相同。

用來計算 <xsl:with-param> 項目之指定值的目前節點和目前節點清單,與用來計算其所在的 <xsl:apply-templates> 或 <xsl:call-template> 項目之目前節點和目前節點清單相同。

若將參數 x 傳到沒有 x 的 <xsl:param> 項目之範本,並不會發生錯誤,而只會略過該參數。

範例

樣式表可使用下列方法呼叫當地語系化的訊息字串。

語言 somelanguage 的訊息會以下方 XML 檔範例所顯示的格式,儲存在 XML 檔 resources/languageabbreviation.xml 中。

XML 檔 (app.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="showlocmsg.xsl" ?>
<showmsg>
   <msg23/>
</showmsg>

XML 資源檔 (resources/en.xml)

<?xml version='1.0'?>
<messages>
  <message name="msg23">Error 23: The drive is full.</message>
  <message name="msg42">Error 42: The file is not found.</message>
</messages>

XSLT 檔 (showlocmsg.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- These 2 elements effectively assign
     $messages = resources/en.xml/<messages>,
     then $messages is used in the "localized-message" template.  -->
<xsl:param name="lang">en</xsl:param>
<xsl:variable name="messages"
      select="document(concat('resources/', $lang, '.xml'))/messages"/> 

<xsl:template name="msg23" match="msg23">
  <xsl:call-template name="localized-message">
    <xsl:with-param name="msgcode">msg23</xsl:with-param>
  </xsl:call-template>
</xsl:template>

<xsl:template name="localized-message">
  <xsl:param name="msgcode"/>
  <!-- Show message string. -->
  <xsl:message terminate="yes">
    <xsl:value-of select="$messages/message[@name=$msgcode]"/>
  </xsl:message>
</xsl:template>

</xsl:stylesheet>

輸出

此為格式化輸出:

範例輸出

此為處理器輸出:

<?xml version="1.0" encoding="UTF-16"?>

請參閱

參考

<xsl:call-template> 元素

<xsl:variable> 元素

<xsl:param> 元素

<xsl:template> 元素