Re: SV: [xsl] XML Question

Subject: Re: SV: [xsl] XML Question
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 4 Oct 2006 12:40:51 +0100
> <xsl:value-of select="string-join(((name(ancestor::*)), name()), '/')"/>
> but Altova gives error message "too many items"...

You can't apply name() to a sequence of more than 1, you want
ancestor::*/name() not name(ancestor::*)
although you could write the whole thing as
<xsl:value-of select="ancestor-or-self::*/name()" separator="/"/>


<xsl:template match="//*[not(*)]">
Starting a match with // doesn't do anything useful,

<xsl:variable name="path">
perhaps its just because you simplified for your posted example, but
this variable is only used once, so you don't need to declare it, just
use the content directly.

<xsl:template match="*[not(*)]">
<xsl:text>
</xsl:text>
<xsl:value-of select="ancestor-or-self::*/name()" separator="/"/>
<xsl:value-of select="' ===> '"/>
<xsl:value-of select="."/>
</xsl:template>

David

Current Thread