Hi Team,
I created the html file using xml and xslt.
I need minimum date using xslt. here my task is i have one xml file with different nodes like flightList,HotelList,CarList,.... I need to get the lowest date from all nodes(flightList,HotelList,CarList).
I have created application as mentioned below.
My XML File written like this:
----------------------------
<TRSummary>
<FlightList>
<TravelDate>28/04/2014</TravelDate>
</FlightList>
<FlightList>
<TravelDate>24/04/2012</TravelDate>
</FlightList>
<FlightList>
<TravelDate>30/04/2013</TravelDate>
</FlightList>
<HotelsList>
<CheckInDate>29/04/2015</CheckInDate>
</HotelsList>
<HotelsList>
<CheckInDate>22/04/2015</CheckInDate>
</HotelsList>
<HotelsList>
<CheckInDate>31/05/2016</CheckInDate>
</HotelsList>
<CarList>
<CarFromDate>29/04/2015</CarFromDate>
</CarList>
<CarList>
<CarFromDate>29/04/2011</CarFromDate>
</CarList>
<CarList>
<CarFromDate>23/04/2015</CarFromDate>
</CarList>
</TRSummary>
My xml document written like this:
-----------------------------
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="Flight">
<xsl:for-each select="TRSummary/FlightList">
<xsl:sort select="number(substring(TravelDate, 7, 4))" order="ascending"/>
<xsl:sort select="number(substring(TravelDate, 3, 2))" order="ascending"/>
<xsl:sort select="number(substring(TravelDate, 1, 2))" order="ascending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="TravelDate"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="Hotel">
<xsl:for-each select="TRSummary/HotelsList">
<xsl:sort select="number(substring(CheckInDate, 7, 4))" order="ascending"/>
<xsl:sort select="number(substring(CheckInDate, 3, 2))" order="ascending"/>
<xsl:sort select="number(substring(CheckInDate, 1, 2))" order="ascending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="CheckInDate"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="Car">
<xsl:for-each select="TRSummary/CarList">
<xsl:sort select="number(substring(CarFromDate, 7, 4))" order="ascending"/>
<xsl:sort select="number(substring(CarFromDate, 3, 2))" order="ascending"/>
<xsl:sort select="number(substring(CarFromDate, 1, 2))" order="ascending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="CarFromDate"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="arrays" >
<Item>
<xsl:value-of select="$Car"/>
</Item>
<Item>
<xsl:value-of select="$Hotel"/>
</Item>
<Item>
<xsl:value-of select="$Flight"/>
</Item>
</xsl:variable>
<xsl:param name="array" select="msxsl:node-set($arrays)"/>
<xsl:template match="/">
<xsl:for-each select="TRSummary">
<xsl:value-of select="$array/Item"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
The above code am getting output :
-----------------------------------
24/04/2012 22/04/2015 29/04/2011
I need output like this:
---------------
29/04/2011
How to get minimum date.
plz guide me ASAP.
Thanks&Regards,
Ramu.