[Home] [By Thread] [By Date] [Recent Entries]
Hello Scott,
what you did in your template, is more or less useless. You do not output label, if it's empty. So you don't need the if-test, because outputting an empty label has the same effect. You must do it earlier: <xsl:apply-templates select="ad/ad_content[normalize-space(label)]"/> or you add the if-test around the content of the template: <xsl:template match="ad_content">
<xsl:if test="normalize-space(label)">
<h3>ad_content</h3>
<xsl:value-of select="label" />
</xsl:if>
</xsl:template>A third possibility is to add a third empty template: <xsl:template match="ad_content[not(normalize-space(label))]"/> Regards, Joerg Scott Purcell wrote: > Hello, > I am trying to skip certain nodes if a condition is met. > I have searched the mailing list, but cannot find a good match for my problem. > If the ad_content does NOT contain a label, I want to skip it. Is it best to do a "if test" like I did below, or is there a better technique that I need to learn? > > Thanks > Scott > > Here is a piece of the xml: > <ad_content> > <item_type>hidden</item_type> > </ad_content> > <ad_content> > <label>headline</label> > <item_type>hidden</item_type> > </ad_content> > > I am sending this to a template match. eg: > <xsl:apply-templates select="ad/ad_content" /> > > > <!-- template --> > <xsl:template match="ad_content"> > <h3>ad_content</h3> > <xsl:if test="label[.!='']"> <!-- make sure it is not blank --> > <xsl:value-of select="label" /> > </xsl:if> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|

Cart



