xslt调用模板中未传递参数值

xslt调用模板中未传递参数值,xslt,xslt-2.0,Xslt,Xslt 2.0,对XSLT相当陌生,并将使用param视为完成某些事情的一种方式 <xsl:variable name="PQB_ID"> <!-- <xsl:value-of select="wd:SSN"/> --> <xsl:value-of>123</xsl:value-of> </xsl:variable> <xsl:call-te

对XSLT相当陌生,并将使用param视为完成某些事情的一种方式

        <xsl:variable name="PQB_ID">
         <!-- <xsl:value-of select="wd:SSN"/> -->
           <xsl:value-of>123</xsl:value-of>
         </xsl:variable>

         <xsl:call-template name="testing">
                 <xsl:with-param name="PQB_ID"></xsl:with-param>
         </xsl:call-template>

123
我的模板名称如下:

<xsl:template name="testing">
   <xsl:param name="PQB_ID"></xsl:param>
   <xsl:value-of select="$PQB_ID"></xsl:value-of>
</xsl:template>

至少,我希望看到123个。或者,当我的
未注释时,我希望看到程序中的值。事实上,我没有得到任何回报

我遗漏了什么?


<xsl:with-param name="PQB_ID"></xsl:with-param>
将为参数传递一个空值。如果要传递全局PQB_ID变量的值,则需要显式传递

 <xsl:with-param name="PQB_ID" select="$PQB_ID"/>


将为参数传递一个空值。如果要传递全局PQB_ID变量的值,则需要显式传递

 <xsl:with-param name="PQB_ID" select="$PQB_ID"/>

注意,在XSLT2.0中,在xsl:param中声明所需参数的类型是一个非常好的主意。你在等字符串吗?整数?我不希望您期望文档节点,这是您正在使用代码仔细创建的

 <xsl:variable name="PQB_ID">
   <xsl:value-of>123</xsl:value-of>
 </xsl:variable>

123
如果模板需要一个整数,那么您不需要一个完整的新文档来包含它;只要写

<xsl:variable name="PQB_ID" select="123"/>

注意,在XSLT2.0中,在xsl:param中声明所需参数的类型是一个非常好的主意。你在等字符串吗?整数?我不希望您期望文档节点,这是您正在使用代码仔细创建的

 <xsl:variable name="PQB_ID">
   <xsl:value-of>123</xsl:value-of>
 </xsl:variable>

123
如果模板需要一个整数,那么您不需要一个完整的新文档来包含它;只要写

<xsl:variable name="PQB_ID" select="123"/>


您碰巧有一个变量和一个模板参数使用相同的名称。指定
不会为其赋值。正如@Ian Roberts指出的,在调用模板时,您需要选择要分配给参数的值。您恰好有一个变量和一个模板参数使用相同的名称。指定
不会为其赋值。正如@Ian Roberts指出的,在调用模板时,需要选择要分配给参数的值。