我们如何才能达到以下逻辑。
UniqueID是临时变量.PALLET_NUMBER来自输入。
如果PALLET_NUMBER!= NULL则
UniqueID = substring(PALLET_NUMBER,10)
如果PALLET_NUMBER = NULL则
UniqueID = substring(CARTON_NUMBER,7)
我们可以从上述两个条件中获取UniqueID的值。这些事情发生在迭代循环中。我们如何覆盖UniqueID临时变量。
后来因为
我们需要提出一个条件<foreach>
If previous UniqueID != current UniqueID then
<Some code>
<IF>
</foreach>
答案 0 :(得分:1)
您无法覆盖xslt中的变量。
您可能需要查找xslt扩展函数以实现目标。
答案 1 :(得分:0)
正如Treemonkey所说,不可能覆盖变量,但你可以实现类似于使用递归描述的东西:
假设你有这样的东西:
<xsl:for-each select="my/node/isNamed/something" />
你可以这样做:
<xsl:variable name="items" select="my/node/isNamed/something" />
<xsl:apply-templates select="$items[1]">
<xsl:with-param name="remainder" select="$items[position() > 1" />
</xsl:apply-templates>
<!-- Separate template -->
<xsl:template match="something">
<xsl:param name="remainder" />
<xsl:param name="lastId" />
<xsl:variable name="uniqueId" select="..." />
<!-- Contents of the xsl:for-each -->
<xsl:apply-templates select="$remainder[1]">
<xsl:with-param name="remainder" select="$remainder[position() > 1]" />
<xsl:with-param name="lastId" select="$uniqueId" />
</xsl:apply-templates>
</xsl:template>