[Home] [By Thread] [By Date] [Recent Entries]
Philipp Kursawe schrieb:
<xsl:for-each select="TAPOS|LGPLA|MATERIAL|MATKTXT|CHECKDIGIT|CHECKDIGIT2|CHECKDIGIT3|VSOLM|MEINS|PACKGROESSE"><xsl:call-template name="item-element" /></xsl:for-each> [...] I do not like the select statement for the tags. I would rather like to describe the exceptions so that tag added in the future are automatically added as attributes without changing the xslt. Hi Philipp, I'd use a special mode to the transform, which by default converts elements to attributes and has exceptions in extra templates. Please try and modify the following to suit your needs: <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()"><!-- identity template -->
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="item">
<xsl:copy><!-- transform elements to attributes -->
<xsl:apply-templates select="*" mode="attr"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="attr"><!-- element to attribute -->
<xsl:attribute name="{name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
<!-- exceptions to this rule go here -->
<xsl:template match="MEINS | PACKGROESSE" mode="attr">
<!-- dispatch to identity template -->
<xsl:apply-templates select="."/>
</xsl:template>
</xsl:stylesheet>Michael Ludwig
|

Cart



