[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
|
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|