我對XSLT相當陌生。以下模板應該用於連接具有相同item_group_id的許多產品的顏色。將xsl參數與xsl中的值進行比較if子句
<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()]">
來映射兩個數組的值。
你能分享你的輸入XML,也許是調用這個模板的XSL?單個「」可能有多個「」子節點嗎? –
JLRishe