Hallo Thomas,
Mir schon, aber dummer weise geht das nur so:
<xsl:template name="attribute">
<xsl:for-each select="//*/@*">
<xsl:value-of select="normalize-space(concat(., ';'))" />
</xsl:for-each>
</xsl:template>Der Nachteil wird sofort merkbar, wenn man versucht den Template aufzurufen (<xsl:template match="//*/@*">) funktioniert nicht)
Ja, da bin ich auch gescheitert, man muss über die Elemente gehen und dann alle Attribute jedes Elements wählen.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="no" media-type="text/plain" />
<xsl:strip-space elements="*"/>
<xsl:template match="/">
xsl:apply-templates/
</xsl:template>
<xsl:template match="*">
<xsl:for-each select="@*">
<xsl:value-of select='.'/>
</xsl:for-each>xsl:text;</xsl:text>
xsl:apply-templates/
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="."/>xsl:text;</xsl:text>
</xsl:template>
</xsl:stylesheet>
Nun müsste man lediglich noch die Fälle abfangen, in denen ein Element keine Attribute hat, damit nicht ein Semikolon ausgegeben wird und auch das letzte Semikolon noch unterdrücken. Aber jetzt bis du wieder dran ;-)
Gruß
Franz