[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] output node-set


Subject: [xsl] output node-set
From: 04083259@xxxxxxxxxxxxx
Date: Fri, 1 Apr 2005 20:21:47 +0100 (BST)

hi

you solution worked

but as i mentioned that i need to keep some empty nodes as a reference ,
so i  just need to delete the empty nodes that called <dig >
#
#
#
#
#


First of, you XML is not valid. Second if all you need is to ignore
nodes with empty strings it can be done simpler.

    <xsl:template match="/top">
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="*">
        <xsl:if test="normalize-space(.) != ''">
            <xsl:copy-of select="."/>
        </xsl:if>
    </xsl:template>

#
#
#
#
#


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>


Current Thread
Keywords
xml