Hallo erstmal,
ich habe einen Ordner voller XML Dateien die alle über ein XSLT Script zu einer CSV Datei transformiert werden sollen.
In der CSV soll es einen header (Kunde;Artikel;...) geben und darunter pro XML eine Zeile ;-separierte Werte.
Meine XML:
Die Daten werden alle geholt und auch fast richtig in die CSV geschrieben,
allerdings wird head immer wieder geschrieben...
Kann mir jemand einen Anstoß geben, wie ich head nur einmal durchlaufen lasse?
LG
Akina
ich habe einen Ordner voller XML Dateien die alle über ein XSLT Script zu einer CSV Datei transformiert werden sollen.
In der CSV soll es einen header (Kunde;Artikel;...) geben und darunter pro XML eine Zeile ;-separierte Werte.
Meine XML:
Code:
<xsl:template match="/"> <xsl:text> </xsl:text><xsl:for-each select="//axis2ns14:Lieferung['first']"><xsl:call-template name="head"/></xsl:for-each> <xsl:apply-templates select="//Lieferung"/> </xsl:template> <xsl:template match="//Lieferung"> <xsl:for-each select=".//*[count(*)=0]"><xsl:call-template name="Liefer"/> </xsl:for-each><xsl:text> </xsl:text> </xsl:template> <xsl:template name="head"> <xsl:choose> <xsl:when test="name()"> <xsl:for-each select=".//*[count(*)=0]"><xsl:value-of select="substring-after(name(),':')"/><xsl:text>;</xsl:text></xsl:for-each><xsl:text> </xsl:text></xsl:when> <xsl:otherwise> <xsl:text>;;</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="Liefer"> <xsl:if test="name()='Bank'"> <xsl:text>;</xsl:text> </xsl:if> <xsl:value-of select="normalize-space(.)"/><xsl:text>;</xsl:text> </xsl:template>
allerdings wird head immer wieder geschrieben...
Code:
kunde;artikel;preis;datum; kunde;artikel;preis;datum; klaus;hose;15,00;24.02.2009; michael;jeans;19,99;25.02.2009; usw
LG
Akina
Comment