Subject: Re: [xsl] xsl:apply-template and xsl:for-ech confusion From: "Luke Ambrogio" <luke.ambrogio@xxxxxxxxxxxx> Date: Wed, 1 Oct 2003 14:47:14 +0200 |
ok the solution was infact using <xsl:apply templates select=".."/> since there was the child element tblMIMSubsector being processed thanks a lot for your help guys and sorry for the late duplicate e-mail regards Luke ----- Original Message ----- From: "Anton Triest" <anton@xxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Friday, October 01, 2004 2:04 PM Subject: Re: [xsl] xsl:apply-template and xsl:for-ech confusion > Hi Luke, > > You could do that, but you can't use <xsl:apply templates > select="tblMIMCompanies"/> > because the for-each loop already puts you in the context of the > tblMIMCompanies nodes. > I think it should work if you use <xsl:apply templates select="."/> > > Or alternatively use apply-templates instead of for-each and use a mode: > > <xsl:template match="tblMIM"> > <xsl:apply-templates select="tblMIMCompanies"/> > </xsl:template> > > <xsl:template match="tblMIMCompanies"> > <xsl:if test="$searchby=0 and > tblMIMSubSectors[@subsectorID=$subsector]"> > <xsl:apply-templates select="." mode="output"/> > </xsl:if> > <xsl:if test="$searchby=1 and tblMIMSubSectors[@sectorID=$sector]"> > <xsl:apply-templates select="." mode="output"/> > </xsl:if> > </xsl:template> > > <xsl:template match="tblMIMCompanies" mode="output"> > <xsl:value-of select="@name"/> > ... > </xsl:template> > > Cheers, > Anton > > > Luke Ambrogio wrote: > > >Hello guys, > > > >thanks a lot for the great help you gave me with my previous problem, > >hopefully this will be as simple to solve. > >I have > > > ><xsl:template match="tblMIM"> > > <xsl:for-each select="tblMIMCompanies"> > > <xsl:choose> > > <xsl:when test="$searchby=0"> > > <xsl:if test="tblMIMSubSectors[@subsectorID=$subsector]"> > > <xsl:value-of select="@name"/> > > ... > > </xsl:if> > > </xsl:when> > > <xsl:when test="$searchby=1"> > > <xsl:if test="tblMIMSubSectors[@sectorID=$sector]"> > > <xsl:value-of select="@name"/> > > ... > > </xsl:if> > > </xsl:when> > > </xsl:choose> > > </xsl:for-each> > ></xsl:template> > > > >i would like to change it to something like the code below, which doesn't > >output anything. This way i don't need to repeat the inner most code since > >its the same for each. any ideas? > > > ><xsl:template match="tblMIM"> > > <xsl:for-each select="tblMIMCompanies"> > > <xsl:choose> > > <xsl:when test="$searchby=0"> > > <xsl:if test="tblMIMSubSectors[@subsectorID=$subsector]"> > > <xsl:apply templates select="tblMIMCompanies"/> > > </xsl:if> > > </xsl:when> > > <xsl:when test="$searchby=1"> > > <xsl:if test="tblMIMSubSectors[@sectorID=$sector]"> > > <xsl:apply templates select="tblMIMCompanies"/> > > </xsl:if> > > </xsl:when> > > </xsl:choose> > > </xsl:for-each> > ></xsl:template> > > > ><xsl:template match="tblMIMCompanies"> > > <xsl:value-of select="@name"/> > > ... > ></xsl:template> > > > >the xml looks like this > > > ><tblMIM> > > <tblMIMCompanies name="A Ltd" ...> > > <tblMIMSubSectors subsectorID="55" sectorID="3"/> > > </tblMIMCompanies> > > <tblMIMCompanies name="Z Ltd" ...> > > <tblMIMSubSectors subsectorID="56" sectorID="3"/> > > </tblMIMCompanies> > ></tblMim> > > > > > >regards > >Luke Ambrogio > > > >p.s. thanks in advance
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl:apply-template and xs, Anton Triest | Thread | Re: [xsl] xsl:apply-template and xs, Anton Triest |
[xsl] xsl:apply-template and xsl:fo, Luke Ambrogio | Date | Re: [xsl] xsl:apply-template and xs, Luke Ambrogio |
Month |