共用方式為


<xsl:variable> 項目

指定繫結於運算式中的值。

<xsl:variable
  name = QName
  select = Expression
</xsl:variable>

屬性

  • name
    必要項。變數的 限定名稱

  • select
    屬性的值為 運算式 (XML),而變數的值為評估運算式後所產生的物件。若指定了此屬性,則 <xsl:variable> 的內容必須空白。

項目資訊

發生次數

無限制

父項目

xsl:attributexsl:commentxsl:copyxsl:elementxsl:for-eachxsl:ifxsl:otherwisexsl:paramxsl:processing-instructionxsl:stylesheetxsl:template、xsl:variable、xsl:whenxsl:with-param、輸出項目

項目子系

xsl:apply-templatesxsl:attributexsl:call-templatexsl:choosexsl:commentxsl:copyxsl:copy-ofxsl:elementxsl:for-eachxsl:ifxsl:processing-instructionxsl:textxsl:value-of、xsl:variable、輸出項目

備註

變數的值可以是運算式可能傳回的任何物件型別。<xsl:variable> 項目能以其他三種方式指定變數的值:

  • 若項目具有 select 屬性,則屬性的值必須為運算式,而變數的值則為評估運算式後所產生的物件。在此情況下,項目的內容必須是空白的。

  • 若項目沒有 select 屬性,且具有非空白的內容 (例如一或多個子節點),則內容會指定一個值。此內容可做為範本,在具現化後可提供變數的值。此值為結果樹狀結構片段,等同於一個節點集,而其中唯一所含的單一根節點,將範本具現化後所產生的節點序列當作子系。結果樹狀結構片段中之節點的基底 URI,即為變數繫結項目的基底統一資源識別元 (URI)。

    若因範本具現化而建立的節點序列成員是屬性節點或命名空間節點,則會發生錯誤,因為根節點無法將屬性節點或命名空間節點當作子系。

  • 若內容空白且不含 select 屬性,則變數的值會是空字串。因此

    <xsl:variable name="x"/>
    

    相當於

    <xsl:variable name="x" select="''"/>
    

    使用變數依位置選取節點時,請務必留意,不要執行下列動作:

    <xsl:variable name="n">2</xsl:variable>
    ...
    <xsl:value-of select="item[$n]"/>
    

    這會輸出第一個項目的值,因為變數 "n" 將繫結到結果樹狀結構片段,而非數字。請改為執行:

    <xsl:variable name="n" select="2"/>
    ...
    <xsl:value-of select="item[$n]"/>
    

    ...或:

    <xsl:variable name="n">2</xsl:variable>
    ...
    <xsl:value-of select="item[number($n)]"/>
    

請參閱

參考

<xsl:param> 項目