Subject: RE: Getting a distinct list of node names
From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx>
Date: Mon, 15 Dec 2003 21:04:50 +0100
|
> -----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
|