herr-stromberg
Mitglied
Ich habe in dem XML Document 3- 6 gleiche Elemente KEYWORD
Wenn ich diese mit diesem XSL-Stylesheet auslesen möchte, dann bekomme ich mehrmals immer das erste KEYWORD angezeigt. Wie kann ich es anstellen, dass er alle in der XML vorhandenen KEYWORD Elemente ausliest
Auserdem möchte ich nach einem kompletten Zurchlauf einen Zeilenumbruch erzeugen, damit er immer wieder bei SUPPLIER_AID in einer neuen Zeile beginnt.
Wie kann ich das bewerkstelligen - Möchte ne CSV draus machen
Hier meine XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl
utput method="text" encoding="iso-8859-1"/>
<xsl:template match="BME">
<xsl:for-each select="ARTICLE">
<xsl:value-of select="SUPPLIER_AID"/>;
<xsl:for-each select="ARTICLE_DETAILS">
<xsl:value-of select="DESCRIPTION_SHORT"/>;
<xsl:value-of select="DESCRIPTION_LONG"/>;
<xsl:value-of select="EAN"/>;
<xsl:value-of select="KEYWORD"/>;
<xsl:value-of select="KEYWORD"/>;
<xsl:value-of select="KEYWORD"/>;
<xsl:for-each select="ARTICLE_FEATURES">
<xsl:value-of select="REFERENCE_FEATURE_SYSTEM_NAME"/>;
<xsl:value-of select="REFERENCE_FEATURE_GROUP_ID"/>;
<xsl:for-each select="FEATURE">
<xsl:value-of select="FNAME"/>;
<xsl:value-of select="FVALUE"/>;
<xsl:for-each select="FEATURE">
<xsl:value-of select="FNAME"/>;
<xsl:value-of select="FVALUE"/>;
<xsl:for-each select="ARTICLE_PRICE_DETAILS">
<xsl:value-of select="PRICE_AMOUNT"/>;
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Die entsprechende XML Datei:
<?xml version="1.0" encoding="ISO-8859-1"?>
<BME>
<ARTICLE>
<SUPPLIER_AID>40603150</SUPPLIER_AID>
<ARTICLE_DETAILS>
<DESCRIPTION_SHORT>Schraubend.-Eins.1/4" 6kt 3x30mm FORUM</DESCRIPTION_SHORT>
<DESCRIPTION_LONG>Schraubendrehereinsatz 1/4" für Innensechskantschrauben, Forum
Innensechskant, aus Chrom-Vanadium-Stahl, matt verchromt, Bit-Einsatz matt grau.
* Nicht genormte Größen.</DESCRIPTION_LONG>
<EAN>4317784847476</EAN>
<KEYWORD>FORUM</KEYWORD>
<KEYWORD>Innensechskantschrauben</KEYWORD>
<KEYWORD>Schraubendreher-Einsätze</KEYWORD>
<KEYWORD>1/4 Zoll</KEYWORD>
<KEYWORD>1/4"</KEYWORD>
<KEYWORD>Steckschlüssel-Programm</KEYWORD>
</ARTICLE_DETAILS>
<ARTICLE_FEATURES>
<REFERENCE_FEATURE_SYSTEM_NAME>ECLASS-5.1</REFERENCE_FEATURE_SYSTEM_NAME>
<REFERENCE_FEATURE_GROUP_ID>21040402</REFERENCE_FEATURE_GROUP_ID>
<FEATURE>
<FNAME>Schlüsselweite</FNAME>
<FVALUE>3</FVALUE>
<FUNIT>mm</FUNIT>
<FORDER>2</FORDER>
</FEATURE>
<FEATURE>
<FNAME>Länge</FNAME>
<FVALUE>30</FVALUE>
<FUNIT>mm</FUNIT>
<FORDER>3</FORDER>
</FEATURE>
<FEATURE>
<FNAME>WG-Nr.</FNAME>
<FVALUE>939</FVALUE>
<FORDER>16</FORDER>
</FEATURE>
</ARTICLE_FEATURES>
<ARTICLE_ORDER_DETAILS>
<ORDER_UNIT>C62</ORDER_UNIT>
<PRICE_QUANTITY>1</PRICE_QUANTITY>
<QUANTITY_MIN>1</QUANTITY_MIN>
<QUANTITY_INTERVAL>1</QUANTITY_INTERVAL>
</ARTICLE_ORDER_DETAILS>
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE price_type="net_list">
<PRICE_AMOUNT>2.51</PRICE_AMOUNT>
<PRICE_CURRENCY>EUR</PRICE_CURRENCY>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>
<MIME_INFO>
<MIME>
<MIME_TYPE>image/jpeg</MIME_TYPE>
<MIME_SOURCE>qwz109163.jpg</MIME_SOURCE>
<MIME_DESCR>42 40603...</MIME_DESCR>
<MIME_PURPOSE>normal</MIME_PURPOSE>
<MIME_ORDER>1</MIME_ORDER>
</MIME>
<MIME>
<MIME_TYPE>image/jpeg</MIME_TYPE>
<MIME_SOURCE>pre308048.jpg</MIME_SOURCE>
<MIME_PURPOSE>logo</MIME_PURPOSE>
<MIME_ORDER>2</MIME_ORDER>
</MIME>
<MIME>
<MIME_TYPE>image/jpeg</MIME_TYPE>
<MIME_SOURCE>wzk309614.jpg</MIME_SOURCE>
<MIME_PURPOSE>others</MIME_PURPOSE>
<MIME_ORDER>3</MIME_ORDER>
</MIME>
</MIME_INFO>
</ARTICLE>
Wenn ich diese mit diesem XSL-Stylesheet auslesen möchte, dann bekomme ich mehrmals immer das erste KEYWORD angezeigt. Wie kann ich es anstellen, dass er alle in der XML vorhandenen KEYWORD Elemente ausliest
Auserdem möchte ich nach einem kompletten Zurchlauf einen Zeilenumbruch erzeugen, damit er immer wieder bei SUPPLIER_AID in einer neuen Zeile beginnt.
Wie kann ich das bewerkstelligen - Möchte ne CSV draus machen
Hier meine XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl

<xsl:template match="BME">
<xsl:for-each select="ARTICLE">
<xsl:value-of select="SUPPLIER_AID"/>;
<xsl:for-each select="ARTICLE_DETAILS">
<xsl:value-of select="DESCRIPTION_SHORT"/>;
<xsl:value-of select="DESCRIPTION_LONG"/>;
<xsl:value-of select="EAN"/>;
<xsl:value-of select="KEYWORD"/>;
<xsl:value-of select="KEYWORD"/>;
<xsl:value-of select="KEYWORD"/>;
<xsl:for-each select="ARTICLE_FEATURES">
<xsl:value-of select="REFERENCE_FEATURE_SYSTEM_NAME"/>;
<xsl:value-of select="REFERENCE_FEATURE_GROUP_ID"/>;
<xsl:for-each select="FEATURE">
<xsl:value-of select="FNAME"/>;
<xsl:value-of select="FVALUE"/>;
<xsl:for-each select="FEATURE">
<xsl:value-of select="FNAME"/>;
<xsl:value-of select="FVALUE"/>;
<xsl:for-each select="ARTICLE_PRICE_DETAILS">
<xsl:value-of select="PRICE_AMOUNT"/>;
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Die entsprechende XML Datei:
<?xml version="1.0" encoding="ISO-8859-1"?>
<BME>
<ARTICLE>
<SUPPLIER_AID>40603150</SUPPLIER_AID>
<ARTICLE_DETAILS>
<DESCRIPTION_SHORT>Schraubend.-Eins.1/4" 6kt 3x30mm FORUM</DESCRIPTION_SHORT>
<DESCRIPTION_LONG>Schraubendrehereinsatz 1/4" für Innensechskantschrauben, Forum
Innensechskant, aus Chrom-Vanadium-Stahl, matt verchromt, Bit-Einsatz matt grau.
* Nicht genormte Größen.</DESCRIPTION_LONG>
<EAN>4317784847476</EAN>
<KEYWORD>FORUM</KEYWORD>
<KEYWORD>Innensechskantschrauben</KEYWORD>
<KEYWORD>Schraubendreher-Einsätze</KEYWORD>
<KEYWORD>1/4 Zoll</KEYWORD>
<KEYWORD>1/4"</KEYWORD>
<KEYWORD>Steckschlüssel-Programm</KEYWORD>
</ARTICLE_DETAILS>
<ARTICLE_FEATURES>
<REFERENCE_FEATURE_SYSTEM_NAME>ECLASS-5.1</REFERENCE_FEATURE_SYSTEM_NAME>
<REFERENCE_FEATURE_GROUP_ID>21040402</REFERENCE_FEATURE_GROUP_ID>
<FEATURE>
<FNAME>Schlüsselweite</FNAME>
<FVALUE>3</FVALUE>
<FUNIT>mm</FUNIT>
<FORDER>2</FORDER>
</FEATURE>
<FEATURE>
<FNAME>Länge</FNAME>
<FVALUE>30</FVALUE>
<FUNIT>mm</FUNIT>
<FORDER>3</FORDER>
</FEATURE>
<FEATURE>
<FNAME>WG-Nr.</FNAME>
<FVALUE>939</FVALUE>
<FORDER>16</FORDER>
</FEATURE>
</ARTICLE_FEATURES>
<ARTICLE_ORDER_DETAILS>
<ORDER_UNIT>C62</ORDER_UNIT>
<PRICE_QUANTITY>1</PRICE_QUANTITY>
<QUANTITY_MIN>1</QUANTITY_MIN>
<QUANTITY_INTERVAL>1</QUANTITY_INTERVAL>
</ARTICLE_ORDER_DETAILS>
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE price_type="net_list">
<PRICE_AMOUNT>2.51</PRICE_AMOUNT>
<PRICE_CURRENCY>EUR</PRICE_CURRENCY>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>
<MIME_INFO>
<MIME>
<MIME_TYPE>image/jpeg</MIME_TYPE>
<MIME_SOURCE>qwz109163.jpg</MIME_SOURCE>
<MIME_DESCR>42 40603...</MIME_DESCR>
<MIME_PURPOSE>normal</MIME_PURPOSE>
<MIME_ORDER>1</MIME_ORDER>
</MIME>
<MIME>
<MIME_TYPE>image/jpeg</MIME_TYPE>
<MIME_SOURCE>pre308048.jpg</MIME_SOURCE>
<MIME_PURPOSE>logo</MIME_PURPOSE>
<MIME_ORDER>2</MIME_ORDER>
</MIME>
<MIME>
<MIME_TYPE>image/jpeg</MIME_TYPE>
<MIME_SOURCE>wzk309614.jpg</MIME_SOURCE>
<MIME_PURPOSE>others</MIME_PURPOSE>
<MIME_ORDER>3</MIME_ORDER>
</MIME>
</MIME_INFO>
</ARTICLE>