Subject: RE: output node-set
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 1 Apr 2005 19:59:02 +0100
|
Oh, I forgot to mention why it isn't working.
<xsl:when test="'self::dig'">
<xsl:copy-of select="dig[node()]"/>
</xsl:when>
This converts the string 'self::dig' to a boolean, which is always true
because the string isn't empty. You meant test="self::dig". It then looks
for a child of the dig element called dig, and doesn't find one, so outputs
nothing.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: 04083259@xxxxxxxxxxxxx [mailto:04083259@xxxxxxxxxxxxx]
> Sent: 01 April 2005 19:49
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: output node-set
>
> hi
>
> i got the following xml database result from a privious transformation
> which contains some empty nodes :
>
>
> <top>
> <dig></dig>
> <MTo><MTo>
> <dig></dig>
> <dig>06767</dig>
> <dig>3712</dig>
> <CCTo><CCTo>
> <dig></dig>
> <dig>40</dig>
> <dig>48</dig>
> <dig>120</dig>
> <nondig>-000</nondig>
> <nondig>87</nondig>
> <nondig>8768</nondig>
> </top>
>
>
> and i am trying from the following template to transform the above
> database to a form where we get red of all the empty <dig>
> elements only
> but it has a problem which i can not figure what was it
>
>
>
>
> <xsl:template match="path">
> <xsl:for-each select="*">
> <xsl:choose>
>
> <xsl:when test="'self::dig'">
> <xsl:copy-of select="dig[node()]"/>
> </xsl:when>
>
> <xsl:when test="'self::nondig'">
> <xsl:copy-of select="nondig[node()]""/>
> </xsl:when>
>
> <xsl:when test="'self::CCTo'">
> <CCTo />
> </xsl:when>
>
>
> <xsl:when test="'self::MoTo'">
> <MoToTo />
> </xsl:when>
>
> </xsl:choose>
>
> </xsl:for-each>
>
> </xsl:template>
> </xsl:stylesheet>
|