-----Original Message-----
From: Manuel Holtgrewe
I need to get a distinct list of the node names from all children of one
node. For example, if I have:
<node:definition>
<form:validator />
<form:validator />
<form:filter />
</node:definition>
tricky one...
I tried it like:
<xsl:template match="node:definition">
<xsl:for-each select="*[name(.) != preceding::*]">
<xsl:if test="position() = 1">
<xsl:text>('</xsl:text>
</xsl:if>
<xsl:value-of select="name()" />
<xsl:text>'</xsl:text>
<xsl:choose>
<xsl:when test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>)</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
Provided you include the namespace declaration for the node:* namespace in
your XSL, there shouldn't be any problems... Could get expensive with long
lists maybe.
Cheers,
Andreas
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list