Re: [xsl] Using xsl:for-each for every 2 elements ?

Subject: Re: [xsl] Using xsl:for-each for every 2 elements ?
From: Ahsan Ali <doubleletter@xxxxxxxxx>
Date: Tue, 31 May 2005 11:00:50 +0400
I'm sorry for the confusion but I believe I erred in that example data:

Here's a precise version

<AirAvail>

  <AvailFlt>
   <name></name>
   <flightno></flightno>
 </AvailFlt>

  <AvailFlt>
   <name></name>
   <flightno></flightno>
 </AvailFlt>

 <FlightAvailStatus>
   <coach>Y</coach>
   <first>Y</first>
   <business>N</business>
 </FlightAvailStatus>

 <FlightAvailStatus>
   <coach>Y</coach>
   <first>Y</first>
   <business>N</business>
 </FlightAvailStatus>

</AirAvail>


For clarity's sake, I'll restate the requirement: I want to group
every 2 AvailFlt elements; at the same time, while displaying the data
of each element, I want to display its availability status in the
corresponding FlightAvailStatus element. The only thing that relates
the two elements is their position (or order)....

I tried the below solution (by OmPrakash) but it gives me no output...

Thanks for your time !

Regards,

Ahsan

On 5/31/05, omprakash.v@xxxxxxxxxxxxx <omprakash.v@xxxxxxxxxxxxx> wrote:
>
>
> Hi,
>
>           This is a modified version of the stylesheet to accoodate for the
> fact that you had asked for every other element to be processed.
>
> I am not sure if I got your requirement right and if someone has answered
> this question already. This is an independent effort and not based on
> anyone else' solution.
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
>
>
> <xsl:template match="/data">
> <xsl:for-each select="availability/avail[(position() mod 2) = 0]">
>
> <xsl:call-template name="findflt">
> <xsl:with-param name="av" select="."/>
> <xsl:with-param name="pos" select="position()"/>
>
> </xsl:call-template>
> </xsl:for-each>
>
> </xsl:template>
>
> <xsl:template name="findflt">
> <xsl:param name="av"/>
> <xsl:param name="pos"/>
>
> <xsl:text>
> </xsl:text>
>
>
>
> <xsl:for-each select="preceding::flights/flt[(position() mod 2) = 0]">
>      <xsl:if test="position() = $pos">
>           <xsl:value-of select="."/>
>           <xsl:value-of select="$av"/>
>      </xsl:if>
>
> </xsl:for-each>
>
> </xsl:template>
>
> </xsl:stylesheet>
>
> Cheers,
> Omprakash.V
>
>
>
>
> This e-Mail may contain proprietary and confidential information and is sent
for the intended recipient(s) only.
> If by an addressing or transmission error this mail has been misdirected to
you, you are requested to delete this mail immediately.
> You are also hereby notified that any use, any form of reproduction,
dissemination, copying, disclosure, modification,
> distribution and/or publication of this e-mail message, contents or its
attachment other than by its intended recipient/s is strictly prohibited.
>
> Visit Us at http://www.polaris.co.in

Current Thread