私は XSLT にまったく慣れていません。次のテンプレートは、同じ item_group_id を持つ多くの製品の色を連結するために使用する必要があります。
<xsl:template name="find-colors" mode="concat">
<xsl:param name="param_item_group_id" />
<xsl:param name="products" />
<xsl:for-each select="$products/product">
<xsl:if test="item_group_id = $param_item_group_id">
<xsl:value-of select="concat($param_item_group_id,\'-\',item_group_id,\'-\', color,\', \')" />
</xsl:if>
</xsl:for-each>
</xsl:template>
呼び出し元のテンプレートでは、item_group_id が $param_item_group_id として設定されます。連結自体はうまく機能しますが、作成する方法を見つけることができないようです
<xsl:if test="item_group_id = $param_item_group_id">
仕事。ステートメントは常に真であるため、このテンプレートの出力にもこれらの種類の文字列が存在します
354655-354655-green, 54655-354632-red, 354655-354632-green
あるべき場所
354655-354655-green
ありがとうございました、
ピーター
編集:
最終的な解決策(JLRisheが提案したものから適応)は使用することです
<xsl:if test="item_group_id[position()] = $param_item_group_id[position()]">
両方の配列の値をマップします。