Jump to content
Sign in to follow this  
sbutt

XSLT apply template help

Recommended Posts

Hi All, I am kind of find it difficult to build my (xslt 1) template: I have this following XML input:

 <Ticket>   <ItineraryItem>				<Flight ArrivalDateTime="2012-08-31T09:40:00" DepartureDateTime="2012-08-31T06:00:00" DirectionInd="Outbound">					<DepartureAirport LocationCode="BRN"/>					<ArrivalAirport LocationCode="ZTH"/>					<OperatingAirline Code="2L" FlightNumber="5320"/>				</Flight>			</ItineraryItem>			<ItineraryItem>				<Flight ArrivalDateTime="2012-09-14T11:00:00" DepartureDateTime="2012-09-14T10:15:00" DirectionInd="Inbound">					<DepartureAirport LocationCode="ZTH"/>					<ArrivalAirport LocationCode="CFU"/>					<OperatingAirline Code="2L" FlightNumber="5321"/>				</Flight>			</ItineraryItem>			<ItineraryItem>				<Flight ArrivalDateTime="2012-09-14T12:40:00" DepartureDateTime="2012-09-14T11:40:00" DirectionInd="Inbound">					<DepartureAirport LocationCode="CFU"/>					<ArrivalAirport LocationCode="BRN"/>					<OperatingAirline Code="2L" FlightNumber="5321"/>				</Flight>			</ItineraryItem>  </Ticket> 

And Have built the following template (xslt 1):

 <xsl:template match="ota:Flight"><xsl:variable name="direction" select="@DirectionInd"/><Fat ServiceType="T"><xsl:attribute name="SegRef"><xsl:if test="java:setIndex($rph_pos, java:getIndex($rph_pos) + 1)"/><xsl:value-of select="format-number(java:getIndex($rph_pos) - 1,'000.#')"/></xsl:attribute><xsl:if test="../@Key"><xsl:attribute name="Key"><xsl:choose><xsl:when test="ota:CabinAvailability/ota:Seat/@Code"><xsl:variable name="code" select="ota:CabinAvailability/ota:Seat/@Code"/><xsl:value-of select="concat(substring(../@Key, 1, 10), $code, substring(../@Key, 12))"/></xsl:when><xsl:otherwise><xsl:value-of select="../@Key"/></xsl:otherwise></xsl:choose></xsl:attribute></xsl:if><StartDate><xsl:value-of select="datetime:format-date(substring(@DepartureDateTime, 1, 10), 'ddMMyyyy')"/></StartDate><Dep><xsl:value-of select="ota:DepartureAirport/@LocationCode"/></Dep><Arr><xsl:value-of select="ota:ArrivalAirport/@LocationCode"/></Arr><Persons><xsl:value-of select="translate(ota:CabinAvailability/ota:PassengerRPHs/@ListOfPassengerRPH,' ', '')"/></Persons></Fat> 

And it generates the following output:

 <Request><Fat ServiceType="T" SegRef="000"><StartDate>31082012</StartDate><Dep>BRN</Dep><Arr>ZTH</Arr><Persons>12</Persons></Fat><Fat ServiceType="T" SegRef="001"><StartDate>14092012</StartDate><Dep>ZTH</Dep><Arr>CFU</Arr><Persons>12</Persons></Fat><Fat ServiceType="T" SegRef="002"><StartDate>14092012</StartDate><Dep>CFU</Dep><Arr>BRN</Arr><Persons>12</Persons></Fat></Request>  

Whereas I want an output to be like this:

 <Request><Fat ServiceType="T" SegRef="000"><StartDate>31082012</StartDate><Dep>BRN</Dep><Arr>ZTH</Arr><Persons>12</Persons></Fat><Fat ServiceType="T" SegRef="001"><StartDate>14092012</StartDate><Dep>ZTH</Dep><Arr>BRN</Arr><Persons>12</Persons></Fat></Request>  

That is to skip the intermediate flight, but only the start and end airports. In this above case, The outbound flight is fine, but there are 2 Inbound flights. I just want the starting Inbound airport and the final Inbound airport in the return flight. Similarly, there could be a scenario, where I have 2 Outbound flight, in that case the scenario woulc be the same that is the first Outboud flight and last Outboud flight. Normal scenario with single Outbound and Inbound flight are only covered at the moment by my template above. That case should stay as it is in the revised template. Your help in this regard should be highlly appreciated. Thanks.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...