<xsl:with-param> | |
テンプレートに渡すパラメータを定義します。テンプレートが呼び出されると、パラメータとして値が渡されます。 | |
カテゴリ | |
サブ命令 (<xsl:with-param> は <xsl:apply-templates> 要素または <xsl:call-template> 要素内に指定する必要があります) |
|
説明 | |
<xsl:with-param> は、テンプレートに渡すパラメータを定義します。テンプレートが呼び出されると、パラメータとして値が渡されます。パラメータの値は、次の 3 つのいずれかの方法で定義できます。
値がテンプレートに渡されない場合 (<xsl:with-param name="x"/>) は、パラメータの初期設定値 (ある場合) が代わりに使用されます。パラメータの初期設定値は、<xsl:template> 内の <xsl:param> 要素で定義されます。詳細については、<xsl:param> 要素の説明を参照してください。 |
|
必須の属性 | |
|
|
省略可能な属性 | |
|
|
コンテンツ | |
<xsl:with-param> 要素には何も指定しないか、または XSLT テンプレートを含めることができます。XSLT テンプレートを含める場合、select 属性 (ある場合) は無視されます。 |
|
指定先 | |
<xsl:apply-templates> と <xsl:call-template>。 |
|
定義先 | |
XSLT 11.6 節「テンプレートにパラメータを渡す」 |
|
例 | |
複数のパラメータを使用したスタイルシートを次に示します。一部のパラメータはグローバルパラメータであり、スタイルシートの外部で定義されています。 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:param name="favoriteNumber" select="23"/> <xsl:param name="favoriteColor"/> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:value-of select="list/title"/> <xsl:value-of select="$newline"/> <xsl:variable name="listitems" select="list/listitem"/> <xsl:call-template name="processListitems"> <xsl:with-param name="items" select="$listitems"/> <xsl:with-param name="color" select="'yellow'"/> <xsl:with-param name="number" select="$favoriteNumber"/> </xsl:call-template> </xsl:template> <xsl:template name="processListitems"> <xsl:param name="items"/> <xsl:param name="color" select="'blue'"/> <xsl:for-each select="$items"> <xsl:value-of select="position()"/> <xsl:text>. </xsl:text> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:for-each> <xsl:value-of select="$newline"/> <xsl:text>Your favorite color is </xsl:text> <xsl:value-of select="$favoriteColor"/> <xsl:text>.</xsl:text> <xsl:value-of select="$newline"/> <xsl:text>The color passed to this template is </xsl:text> <xsl:value-of select="$color"/> <xsl:text>.</xsl:text> <xsl:value-of select="$newline"/> </xsl:template> </xsl:stylesheet> このスタイルシートを使用して、次のドキュメントを変換します。 <?xml version="1.0"?> <list xml:lang="en"> <title>Albums I've bought recently:</title> <listitem>The Sacred Art of Dub</listitem> <listitem>Only the Poor Man Feel It</listitem> <listitem>Excitable Boy</listitem> <listitem xml:lang="sw">Aki Special</listitem> <listitem xml:lang="en-gb">Combat Rock</listitem> <listitem xml:lang="zu">Talking Timbuktu</listitem> <listitem xml:lang="jz">The Birth of the Cool</listitem> </list> このスタイルシートは、favoriteNumber と favoriteColor の 2 つのグローバルパラメータを含み、favoriteNumber の初期設定値を定義します。また、このスタイルシートにより、match="/" テンプレートから name="processListitems" テンプレートにパラメータが渡されます。このパラメータにはノードセットが含まれます。変換の結果は次のとおりです。 Albums I've bought recently: 1. The Sacred Art of Dub 2. Only the Poor Man Feel It 3. Excitable Boy 4. Aki Special 5. Combat Rock 6. Talking Timbuktu 7. The Birth of the Cool Your favorite color is orange. The color passed to this template is yellow. Xalan でこれらの結果を生成するには、次のコマンドを使用します。 java org.apache.xalan.xslt.Process -in test4.xml -xsl with-param.xsl -param favoriteColor orange コマンドは 1 行で指定します。グローバルパラメータの詳細、およびさまざまな XSLT プロセッサでのグローバルパラメータの定義方法については、第 4 章 4.4.3 項を参照してください。 |