Hi,
Suggestions? Solutions?
Don't know if this approach is generic enough for your purposes, but seems to
work
<xsl:template match="/">
<div>
<xsl:apply-templates />
</div>
</xsl:template>
<xsl:template match="b"/>
<xsl:template match="c">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="d">
<d>
<xsl:apply-templates/>
</d>
</xsl:template>
<xsl:template match="a">
<l>
<xsl:variable name="text" select="descendant::text()[1]"/>
<xsl:if test="not(string(number(substring($text, 1, 1))) = 'NaN')">
<xsl:attribute name="n">
<xsl:value-of select="substring-before(concat($text, ' '), ' ')"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates/>
</l>
</xsl:template>
<xsl:template match="a//text()" >
<xsl:choose>
<xsl:when test="not(preceding::text()[generate-id(ancestor::a[1]) =
generate-id(current()/ancestor::a[1])])">
<xsl:choose>
<xsl:when test="string(number(substring(., 1, 1))) = 'NaN'">
<xsl:value-of select="."/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring(.,
string-length(substring-before(concat(., ' '), ' ')) + 1)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Cheers,
Jarno - Massiv in Mensch: Kunstmutter