1

ユーザーがドロップダウンでオプションを選択したときに、XSl コードでテンプレート関数を呼び出そうとしています。

<xsl:element name="select">
<xsl:attribute name="id">
<xsl:value-of select="$l" />
</xsl:attribute>

<xsl:attribute name="onchange">
<xsl:value-of select="TEMPLATE SHOULD BE CALLED HERE"/>
</xsl:attribute>

    <option value="1">Select</option>
    <option value="2">Daily</option>
    <option value="3">Weekly</option>
    <option value="4">Monthly</option>
    <option value="5">RunOnStartup</option>

テンプレートを呼び出す構文を教えてください。

4

2 に答える 2

1

XSLT 1.0 がブラウザーに実装されている場合、XSLT スタイルシートは HTML を生成します。すべてのイベント処理は、HTML の一部として生成する Javascript コードで行う必要があります。その Javascript から XSLT にコールバックする場合は、変換 API を使用して新しい変換を開始する必要があります。

これは、Saxon-CE で実装されている XSLT 2.0 を使用すると変わります。Saxon-CE スタイルシートには、ユーザー イベントに応答するコードを含めることができます。select 要素の「onchange」属性を生成する必要はありません。次のようなテンプレート ルールを作成するだけです。

<xsl:template match="select" mode="ixsl:onchange">
  ... code goes here ...
</xsl:template>

HTML の「select」要素で「onchange」イベントが発生すると、テンプレートが自動的に実行されます。

Saxon-CE の詳細情報 (および例) は、次の場所にあります。

http://www.saxonica.com/ce/download.xml

于 2012-06-18T07:42:55.463 に答える
0

xsl:template 要素の構文は、http ://www.w3schools.com/xsl/el_template.asp にあります。

<xsl:template
name="name"
match="pattern"
mode="mode"
priority="number">

  <!-- Content:(<xsl:param>*,template) -->

</xsl:template>

name:   name    Optional. Specifies a name for the template.
Note: If this attribute is omitted there must be a match attribute

match   pattern Optional. The match pattern for the template.
Note: If this attribute is omitted there must be a name attribute

mode:   mode    Optional. Specifies a mode for this template
priority    number  Optional. A number which indicates the numeric priority of the template
于 2012-06-18T05:07:27.020 に答える