这是我的XSLT:
<xsl:choose>
<xsl:when test="string-length(/*/location/name)">
<xsl:variable name="pagurl">/location/<xsl:value-of select="/*/location/@id" />comments</xsl:variable>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="pagurl">/state/<xsl:value-of select="/*/state/@code" />/comments</xsl:variable>
</xsl:otherwise>
</xsl:choose>
<div class="pagination_outer" id="pager">
<xsl:call-template name="pagination">
<xsl:with-param name="url"><xsl:value-of select="$pagurl"/></xsl:with-param>
</xsl:call-template>
</div>
我正在做以下事情:
$pagurl
分配给基于字符串长度的值。<xsl:with-param
name="url"><xsl:value-of select="$pagurl"/></xsl:with-param>
当我包含此调用时,页面似乎永远不会完成加载,但是当我不使用它时,页面加载就好了。 我想在使用此功能时出现了错误。
我不认为有必要查看pagination template
,因为如果我对某个值进行硬编码,它就能正常工作。
建议?
答案 0 :(得分:0)
pageurl
中定义的变量xsl:when
和xsl:otherwise
内的变量pagination
在您尝试将其用作{{1}的参数时超出了范围}。你说页面似乎永远不会完成加载,但我怀疑你错过了一条错误信息。
请改为尝试:
<xsl:variable name="pagurl">
<xsl:choose>
<xsl:when test="string-length(/*/location/name)">
<xsl:text>/location/</xsl:text>
<xsl:value-of select="/*/location/@id"/>
<xsl:text>comments</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>/state/</xsl:text>
<xsl:value-of select="/*/state/@code"/>
<xsl:text>/comments</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<div class="pagination_outer" id="pager">
<xsl:call-template name="pagination">
<xsl:with-param name="url" select="$pagurl"/>
</xsl:call-template>
</div>