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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Using xsl:for-each for ev, omprakash . v | Thread | Re: [xsl] Using xsl:for-each for ev, omprakash . v |
RE: [xsl] Q - Parsing & Manipulatin, Michael Kay | Date | RE: [xsl] template name in attribut, Michael Kay |
Month |