Hi,
da wir keine XSLT Experten sind und einfach so bei der Schnittstelle ins kalte Wasser geworfen worden hoffen wir hier auf Hilfe
da wir keine XSLT Experten sind und einfach so bei der Schnittstelle ins kalte Wasser geworfen worden hoffen wir hier auf Hilfe

Code:
The first part:
<BMECAT>
<T_NEW_CATALOG>
<ARTICLE>
<SUPPLIER_AID>0208000121</SUPPLIER_AID>
<ARTICLE_DETAILS>
<DESCRIPTION_SHORT>Testplatten "Raps", 96-well Platte beschichtet mit: A1-A8: PPA Control DNA,</DESCRIPTION_SHORT
Testplatten "Raps", 1 Stück</KEYWORD>
</ARTICLE_DETAILS>
<ARTICLE_ORDER_DETAILS>
<ORDER_UNIT>Stk</ORDER_UNIT>
</ARTICLE_ORDER_DETAILS>
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE>
<PRICE_AMOUNT>25</PRICE_AMOUNT>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>
</ARTICLE>
The second part:
<ARTICLE_TO_CATALOGGROUP_MAP>
<ART_ID>0208000121</ART_ID>
<CATALOG_GROUP_ID>0208</CATALOG_GROUP_ID>
</ARTICLE_TO_CATALOGGROUP_MAP>
</T_NEW_CATALOG>
</BMECAT>
Code:
Das Ergebnis sollte so aussehen:
<BMECAT>
<T_NEW_CATALOG>
<ARTICLE>
<SUPPLIER_AID>0208000121</SUPPLIER_AID>
<ARTICLE_DETAILS>
<DESCRIPTION_SHORT>Testplatten "Raps", 96-well Platte beschichtet mit: A1-A8: PPA Control DNA,</DESCRIPTION_SHORT
Testplatten "Raps", 1 Stück</KEYWORD>
</ARTICLE_DETAILS>
<ARTICLE_ORDER_DETAILS>
<ORDER_UNIT>Stk</ORDER_UNIT>
</ARTICLE_ORDER_DETAILS>
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE>
<PRICE_AMOUNT>25</PRICE_AMOUNT>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>
<GROUP>0208</GROUP>
</ARTICLE>
</T_NEW_CATALOG>
</BMECAT>
Code:
Unser XSLT:
<xsl:template match="/BMECAT/T_NEW_CATALOG">
<xsl:for-each select="ARTICLE">
<xsl:variable name="aid">
<xsl:value-of select="SUPPLIER_AID" />
</xsl:variable>
<xsl:variable name="position">
<xsl:value-of select="position()" />
</xsl:variable>
<xsl:for-each select="//ARTICLE_TO_CATALOGGROUP_MAP" >
<xsl:variable name="mapaid">
<xsl:value-of select="ART_ID" />
</xsl:variable>
<xsl:variable name="cataloggid">
<xsl:value-of select="CATALOG_GROUP_ID" />
</xsl:variable>
<xsl:if test="$aid = $mapaid">
<xsl:element name="GROUP">
<xsl:value-of select="$cataloggid"/>
</xsl:element>
</xsl:if>
</xsl:for-each>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:for-each>
</xsl:template>
Zuletzt bearbeitet: