基于条件的XSLT调用模板
我的实时XSLT文件有问题。基于此,我在这里提出我的问题。我有3个xslt文件,如1.xsl和master.xsl。此master.xsl被导入到1.xsl中 在master.xsl上,我使用以下代码基于条件的XSLT调用模板,xslt,Xslt,我的实时XSLT文件有问题。基于此,我在这里提出我的问题。我有3个xslt文件,如1.xsl和master.xsl。此master.xsl被导入到1.xsl中 在master.xsl上,我使用以下代码 <xsl:call-template name="content"> <xsl:with-param name="request" select="$request"/> <xsl:call-template> 当没有参数时,现在显示的是错误 XTSE0680
<xsl:call-template name="content">
<xsl:with-param name="request" select="$request"/>
<xsl:call-template>
当没有参数时,现在显示的是错误
XTSE0680:参数请求未在被调用的模板中声明
因此,在这种情况下,请给我一些想法来修改
master.xsl
上的编码。错误消息的原因已在对的回答中指出。必须修改模板才能声明参数。或者您需要更改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
不是空的,那么您将继续遇到错误。无法在运行时检查模板是否需要参数。错误消息的原因已在对的回答中指出。必须修改模板才能声明参数。或者您需要更改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
不是空的,那么您将继续遇到错误。无法在运行时检查模板是否需要参数。可能重复@markdark,看起来相同,但这是不同的。我用同样的代码问了另一个问题。有什么想法吗?请问“as”是什么意思?在as=“node()”中,它是一个要与一组xml标记一起传递的参数。如果xsl:choose元素不存在“Content”参数,则可以传递伪元素。可能与@markdark相同,但这是不同的。我用同样的代码问了另一个问题。有什么想法吗?请问“as”是什么意思?在as=“node()”中,它是一个要与一组xml标记一起传递的参数。如果xsl:choose element不存在“Content”参数,则可以传递伪元素。a/缺失以关闭第一个a/缺失以关闭第一个
<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>