-1

以下のロジックを達成する方法。

UniqueID は一時変数です。PALLET_NUMBER は入力から来ています。

PALLET_NUMBER!=NULL の場合

UniqueID=部分文字列 (PALLET_NUMBER, 10)

PALLET_NUMBER =NULL の場合

UniqueID=部分文字列 (CARTON_NUMBER, 7)

上記の 2 つの条件から UniqueID の値を取得できます。これらは反復ループで発生します。UniqueID 一時変数を上書きする方法。

だってあとで のように入れなきゃいけない条件があるから

<foreach>   
 If previous UniqueID != current UniqueID then

        <Some code>
        <IF>
</foreach>
4

2 に答える 2

1

xslt で変数を上書きすることはできません。

目的を達成するために、xslt 拡張関数を調べることができます。

于 2013-03-22T09:52:51.393 に答える
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>
于 2013-03-22T10:05:09.163 に答える