Habs selbst hinbekommen ;)
Es fehlte einfach:
xsl:text
</xsl:text>
</xsl:for-each>
in der Anweisung. Die Anweisung lautet nun:
<!-- Neue Datenausgabe -->
<xsl:for-each select="//POI">
<xsl:if test="@Sprache">
<xsl:value-of select="@Sprache"/>
</xsl:if>
<!-- test if child exist -->
<xsl:if test="*">
<xsl:value-of select="$Trenner"/>
</xsl:if>
<xsl:for-each select="*">
<xsl:value-of select="."/>
<xsl:if test="not(position() = last())">
<xsl:value-of select="$Trenner"/>
</xsl:if>
</xsl:for-each>
xsl:text
</xsl:text>
</xsl:for-each>
</xsl:template>
Danke!!!!
So, hab das mal wie folgt in die XSD eingbaut.
Headerbereich fehlt!
<!--Spaltenköpfe -->
<xsl:for-each select="/*/*[1]/child::* | /*/*[1]/@*">
<!-- Feldauszeichnung links -->
<xsl:call-template name="Feldauszeichnung"/>
<xsl:value-of select="local-name(.)"/>
<!-- Feldauszeichnung rechts -->
<xsl:call-template name="Feldauszeichnung"/>
<!--Trenner -->
<xsl:if test="not(position()=last())">
<xsl:value-of select="$Trenner"/>
</xsl:if>
</xsl:for-each>
xsl:text
</xsl:text>
</xsl:if><!-- Neue Datenausgabe -->
<xsl:for-each select="//POI">
<xsl:if test="@Sprache">
<xsl:value-of select="@Sprache"/>
</xsl:if>
<!-- test if child exist -->
<xsl:if test="*">
<xsl:value-of select="$Trenner"/>
</xsl:if>
<xsl:for-each select="*">
<xsl:value-of select="."/>
<xsl:if test="not(position() = last())">
<xsl:value-of select="$Trenner"/>
</xsl:if>
</xsl:for-each>
</xsl:for-each></xsl:template>
<!-- Feldauszeichnung -->
<xsl:template name="Feldauszeichnung">
<xsl:if test="$Feld != ''">
<xsl:value-of select="$Feld"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>Nun bekomme ich folgendes raus:
Sprache;Name;Preis;Nr;Typ
DEU;Frühstück;20;1;p;Mittagspause;1;2;pAnscheinend bekommt er es nun nicht hin, den neuen Eintrag in die nächste Spalte zu setzen. So wie hier:
Sprache;Name;Preis;Nr;Typ
DEU;Frühstück;20;1;p
;Mittagspause;1;2;pWie könnte man das lösen?
Danke übrigens für die schnelle Hilfe. Ist Gold wert!
Sorry,
kann man auch nur mit xsl:if
<xsl:for-each select="//POI">
<xsl:if test="@Sprache">
<xsl:value-of select="@Sprache"/>
</xsl:if>
<!-- test if child exist -->
<xsl:if test="*">
<xsl:value-of select="$Trenner"/>
</xsl:if>
<xsl:for-each select="*">
<xsl:value-of select="."/>
<xsl:if test="not(position() = last())">
<xsl:value-of select="$Trenner"/>
</xsl:if>
</xsl:for-each>
</xsl:for-each>