以下の入力では、サプライヤ コードがノード サプライヤ コードのいずれかと一致するかどうかを確認する必要があります。それから、Quantity で合計操作を実行する必要があります。それ以外の場合は、数量を直接マッピングします。
入力:
<Move-Afile>
<Afile>
<Item>
<suppliercode>1</suppliercode>
<PackNumber>1234</PackNumber>
<Quantity>12</Quantity>
</Item>
<Item>
<suppliercode>2</suppliercode>
<PackNumber>567</PackNumber>
<Quantity>3</Quantity>
</Item>
<Item>
<suppliercode>1</suppliercode>
<PackNumber>567</PackNumber>
<Quantity>8</Quantity>
</Item>
<Item>
<suppliercode>3</suppliercode>
<PackNumber>126</PackNumber>
<Quantity>11</Quantity>
</Item>
<Item>
<suppliercode>4</suppliercode>
<PackNumber>876</PackNumber>
<Quantity>32</Quantity>
</Item>
</Afile>
</Move-Afile>
サプライヤ コードが等しい場合は、数量に対して合計演算を実行します。そうでない場合は、数量を直接マップします。
出力:
<A>
<target>
<Item>
<suppliercode>1</suppliercode>
<PackNumber>1234</PackNumber>
<Quantity>20</Quantity>
</Item>
<Item>
<suppliercode>2</suppliercode>
<PackNumber>567</PackNumber>
<Quantity>3</Quantity>
</Item>
<Item>
<suppliercode>1</suppliercode>
<PackNumber>567</PackNumber>
<Quantity>20</Quantity>
</Item>
<Item>
<suppliercode>3</suppliercode>
<PackNumber>126</PackNumber>
<Quantity>11</Quantity>
</Item>
<Item>
<suppliercode>4</suppliercode>
<PackNumber>876</PackNumber>
<Quantity>32</Quantity>
</Item>
</target>
</A>
以下のような別の一時変数に合計ロジックが必要です。
<varaible name=tempvar>
<xsl:choose>
<xsl:when suppliercode=suppliercode>
<xsl:value-of select=sum(quntity)/>
<xsl:when>
<xsl:otherwise>
<xsl:value-of select=quntity/>
</xsl:otherwise>
</xsl:choose>
</variable>