[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: xsl:apply-template and xsl:for-ech confusion

Subject: Re: xsl:apply-template and xsl:for-ech confusion
From: Anton Triest <anton@xxxxxxxx>
Date: Fri, 01 Oct 2004 14:04:59 +0200
xsl apply template
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.