1

リアルタイム XSLT ファイルに問題があります。それに基づいて、私はここに私の質問を入れています。1.xsl や master.xsl などの 3 つの xslt ファイルがあります。この master.xsl は 1.xsl にインポートされます

master.xsl では、以下のコードを使用しています

<xsl:call-template name="content">
<xsl:with-param name="request" select="$request"/>
<xsl:call-template>

同様に、1.xsl では、

<xsl:template name="content">
<xsl:param name="request" as="node()"/>
....
</xsl:template>

この場合、ファイル 1.xsl で、しばらくの間、テンプレート「コンテンツ」のparameter要求が渡されません。しばらくすると通過します。

したがって、場合によっては、上記のテンプレートは (パラメーター 'request' なしで) になります。

<xsl:template name="content">

    ....
</xsl:template>

パラメータがない場合、これは今のところエラーを示しています

XTSE0680: Parameter request is not declared in the called template

この場合、コーディングを変更するためのアイデアを教えてくださいmaster.xsl

4

1 に答える 1

1

エラー メッセージの理由は、別のテンプレートで xsl:with-param を使用してテンプレートを呼び出す XSLTへの回答で指摘されています。パラメータを宣言するには、テンプレートを変更する必要があります。または、コードを変更してmaster.xsl、パラメーターのみを渡す必要があります。

<xsl:choose>
   <xsl:when test="$request">
     <xsl:call-template name="content">
       <xsl:with-param name="request" select="$request"/>
     <xsl:call-template>
   </xsl:when>
   <xsl:otherwise>
     <xsl:call-template name="content"/>
   </xsl:otherwise>
</xsl:choose>

$request空でないシーケンスの場合にのみ渡されます。もちろん、テンプレートがパラメーターを宣言し、変数$requestが空でないスタイルシートにコードが含まれている場合、引き続きエラーが発生します。テンプレートがパラメーターを予期しているかどうかを実行時に確認する方法はありません。

于 2013-10-03T14:29:14.757 に答える