以下是我的代码。基本上,问题是我需要能够检查节点,如果它是空白,则将其设置为0,但如果它有值,则将其设置为该值。然后我需要对它做数学(减去值)。以下是我尝试过的,但我收到错误"变量参数' quantAvail'要么未定义,要么超出范围。"我不确定如何解决这个问题?
<xsl:choose>
<xsl:when test="quantitybackordered=''">
<xsl:variable name="quantBackOrdered" select="0"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="quantBackOrdered" select="quantitybackordered"/>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="locationquantityavailable=''">
<xsl:variable name="quantAvail" select="0"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="quantAvail" select="locationquantityavailable"/>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="inventoryLocation_internalid='18'">
<xsl:variable name="quantTotal" select="$quantAvail - $quantBackOrdered"/> <!-- Error on this line -->
<xsl:value-of select="$quantTotal"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="test" select="locationquantityavailable"/>
<xsl:choose>
<xsl:when test="$test=''">
<xsl:text>0</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="locationquantityavailable"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
答案 0 :(得分:-1)
如果没有看到上下文(输入和样式表的其余部分),建议很难,但我相信你可以将问题中的部分重写为:
<xsl:variable name="quantBackOrdered">
<xsl:choose>
<xsl:when test="quantitybackordered=''">0</xsl:when>
<xsl:otherwise>
<xsl:value-of select="quantitybackordered" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="quantAvail">
<xsl:choose>
<xsl:when test="locationquantityavailable=''">0</xsl:when>
<xsl:otherwise>
<xsl:value-of select="locationquantityavailable" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="inventoryLocation_internalid='18'">
<xsl:value-of select="$quantAvail - $quantBackOrdered"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$quantAvail"/>
</xsl:otherwise>
</xsl:choose>