我在尝试拨打另一个模板时遇到了一个奇怪的问题。我有一个模板,可以调用另一个带有多个参数的子模板。我遇到的问题是子模板(或称为模板)识别第一个参数,并为其他参数抛出异常,因为"无法找到名称变量..."。当我尝试使用单个参数时,它可以正常工作:我可以在被调用的模板上获取传递的参数值,但是当我传递多个参数时则不能。
这里我添加了定义参数的代码部分并调用子模板。
<xsl:template match="/">
<xsl:call-template name="subTemplatePerson"> <!--Making a call to sub-template-->
<xsl:with-param name="personId" select="'ID123'"/>
<xsl:with-param name="locale" select="'en_US'"/>
</xsl:call-template>
</xsl:template>
在子模板方面:
<xsl:template name="subTemplatePerson"><!--Template being called-->
<xsl:param name="personId"/> <xsl:variable name="pId" select="$personId"/>
<xsl:param name="locale"/> <xsl:variable name="localeValue" select="$locale"/>
</template>
答案 0 :(得分:2)
尝试通过将所有xsl:param
放在模板的开头来修复它。