Re: [xsl] Thought i knew this but i guess not

Subject: Re: [xsl] Thought i knew this but i guess not
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Tue, 22 Feb 2011 20:30:55 +0100
No need for an xsl:if there. also, your second template copies the current node to the result tree as well, from your question, I think you don't want this. Here's a way to do it (not tested):

<!-- capture filter1 and filter10 -->
<xsl:template match="*[@filter = 'filter1' or @filter = 'filter10']">
<xsl:copy-of select="." />
</xsl:template>

<!-- ignore the rest -->
<xsl:template match="* | @*">
<xsl:apply-templates />
</xsl:template>


Kind regards, Abel


On 22-2-2011 20:19, russurquhart1@xxxxxxxxxxx wrote:
I am trying to extract only elements having a filter attribute value of 'filter10', 'filter1' or has no filter attributes at all. I would have thought this would do it:

But other filter values are making it into the result file.


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";> <xsl:template match="*[@filter]"> <xsl:if test="contains(@filter, 'filter10') or contains(@filter, 'filter1')">

       <xsl:copy-of select="." />
     </xsl:if>
   </xsl:template>
   <xsl:template match="*[not(@filter)]">
     <xsl:copy-of select="." />
   </xsl:template>
</xsl:stylesheet>


Can someone provide some help on this!


Thanks so much!


Russ

Current Thread