xsl-list
[Top] [All Lists]

Re: Q - Value of param doesn't change !

2005-05-31 05:59:30
David,

Thanks for the reply..  I'm sorry if my explanation was not clear..
Here's my schedule.xsl (with the irrelevant parts removed):
--------------- schedule.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:a="http://tempuri.org/GemWebServices/Services";
exclude-result-prefixes="a diffgr soap"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"
                xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xs="http://www.w3.org/2001/XMLSchema";>

        <xsl:output method="html" indent="yes"/>

        <xsl:template match="/">

                <table width="98%" border="0" cellPadding="0" cellSpacing="1"
bgcolor="#CCCCCC" class="searchResult">
                        <tbody>
                                <xsl:apply-templates
select="soap:Envelope/soap:Body/a:FlightSchedulesResponse/a:FlightSchedulesResult/diffgr:diffgram/AirAvail/ReturnAvailFlt"/>
                        </tbody>
                </table>
        </xsl:template>

        <!---> This needs work. //-->
        <xsl:template name="Jrny">
                <xsl:param name="hrs"/>
                <xsl:param name="mins"/>
                <xsl:value-of select="concat($hrs, ' hrs ', $mins, ' mins')"/>
        </xsl:template>

        <xsl:template 
match="soap:Envelope/soap:Body/a:FlightSchedulesResponse/a:FlightSchedulesResult/diffgr:diffgram/AirAvail/ReturnAvailFlt">
                <tr>
                        <td>
                                <xsl:call-template name="Jrny">
                                        <xsl:with-param name="hrs" 
select="number(format-number(JrnyTm
div 60, '#'))"/>
                                        <xsl:with-param name="mins" 
select="JrnyTm -
(number(format-number(JrnyTm div 60, '#')) * 60)"/>
                                </xsl:call-template>
                        </td>
                </tr>
        </xsl:template>
</xsl:stylesheet>
---------------

And here's a minimal XML sample...

--------------- minimal.xml
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
        <soap:Body>
                <FlightSchedulesResponse 
xmlns="http://tempuri.org/GemWebServices/Services";>
                        <FlightSchedulesResult>
                                <diffgr:diffgram
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                                        <AirAvail xmlns="">
                                                <ReturnAvailFlt 
diffgr:id="ReturnAvailFlt1" msdata:rowOrder="0">
                                                        <AirV>AF</AirV>
                                                        <FltNum>526</FltNum>
                                                        <OpSuf/>
                                                        
<StartDt>20051105</StartDt>
                                                        
<StartAirp>CDG</StartAirp>
                                                        <EndAirp>DXB</EndAirp>
                                                        <StartTm>1315</StartTm>
                                                        <EndTm>2255</EndTm>
                                                        <DayChg>00</DayChg>
                                                        <Conx>N</Conx>
                                                        <AirpChg/>
                                                        <Equip>332</Equip>
                                                        <Spare1/>
                                                        <NumStops>0</NumStops>
                                                        <OpAirVInd>N</OpAirVInd>
                                                        <Perf/>
                                                        
<LinkSellAgrmnt>SS</LinkSellAgrmnt>
                                                        
<DispOption>Y</DispOption>
                                                        
<InsideAvailOption>Y</InsideAvailOption>
                                                        <GenTrafRestriction/>
                                                        
<DaysOperates>YYYYYYY</DaysOperates>
                                                        <JrnyTm>400</JrnyTm>
                                                        <EndDt>20051205</EndDt>
                                                        <OpAirV/>
                                                        <OpFltDesignator/>
                                                        <OpFltSuf/>
                                                        
<StartTerminal>2F</StartTerminal>
                                                        
<EndTerminal>1</EndTerminal>
                                                        <FltTm>435</FltTm>
                                                        <LSAInd>N</LSAInd>
                                                        
<GalileoAirVInd>Y</GalileoAirVInd>
                                                </ReturnAvailFlt>
                                                <ReturnAvailFlt 
diffgr:id="ReturnAvailFlt2" msdata:rowOrder="1">
                                                        <AirV>EK</AirV>
                                                        <FltNum>74</FltNum>
                                                        <OpSuf/>
                                                        
<StartDt>20051105</StartDt>
                                                        
<StartAirp>CDG</StartAirp>
                                                        <EndAirp>DXB</EndAirp>
                                                        <StartTm>1430</StartTm>
                                                        <EndTm>10</EndTm>
                                                        <DayChg>01</DayChg>
                                                        <Conx>N</Conx>
                                                        <AirpChg/>
                                                        <Equip>772</Equip>
                                                        <Spare1/>
                                                        <NumStops>0</NumStops>
                                                        <OpAirVInd>N</OpAirVInd>
                                                        <Perf/>
                                                        
<LinkSellAgrmnt>SS</LinkSellAgrmnt>
                                                        
<DispOption>Y</DispOption>
                                                        
<InsideAvailOption>Y</InsideAvailOption>
                                                        <GenTrafRestriction/>
                                                        
<DaysOperates>YYYYYYY</DaysOperates>
                                                        <JrnyTm>400</JrnyTm>
                                                        <EndDt>20051205</EndDt>
                                                        <OpAirV/>
                                                        <OpFltDesignator/>
                                                        <OpFltSuf/>
                                                        
<StartTerminal>1</StartTerminal>
                                                        
<EndTerminal>1</EndTerminal>
                                                        <FltTm>400</FltTm>
                                                        <LSAInd>N</LSAInd>
                                                        
<GalileoAirVInd>Y</GalileoAirVInd>
                                                </ReturnAvailFlt>
                                        </AirAvail>
                                </diffgr:diffgram>
                        </FlightSchedulesResult>
                </FlightSchedulesResponse>
        </soap:Body>
</soap:Envelope>
---------------

The above gives the output:

for the first ReturnAvailFlt, '7 hrs -15 mins' [this is correct, but I
need it without the hyphen]
for the second Return AvailFlt, '7 hrs -20 mins' [this is wrong, it
should be 7 hrs 40 mins].

Finally, the journey time given in the xml sheet is in minutes.

Thank you,

Regards, Ahsan

On 5/31/05, David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:

  The call template code is inside a for-each element. So, ideally, it
  should change its JrnyTm value everytime, right ? Well..it looks like
  once the xsl:param [hrs] is set to 7, it stays that ! It looks as if
  the select expression is not being evaluated for every element..

You don't show anything like enough information for anyone to really
offer any help, but since JrnyTm is specified as having parameters these
parameters will be re-evaluated each time the template is called.

However a couple of comments

JrnyTm is a template not a variable so it doesn't
have a value as such, so I'm not sure what you mean by
"change its JrnyTm value everytime,"
also do you have elements called JrnyTm in the source?

elect="JrnyTm - (number(format-number(JrnyTm div 60, '#')) * 60)"/>
</xsl:call-template>

contains two references to the string value of a child element with name
JrnyTm, not a reference to anything defined in the stylesheet.


David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>