I have a xml file looks like below and I would like to get the Rate from a specific Date (2017-01-01 in my example). But the problem is some of them have multiple rates and they should be all come out horizontally. The format has no problem and I can get the Rate1 based on xsl:stylesheet version="1.0". But how do I get the Rate2 and Rate3? Please help and here is the example.
Here is the xml:
<Table>
<TableName>Table A</TableName>
<Details>
<Date>2016-01-01</Date>
<Rate>0.01</Rate>
</Details>
<Details>
<Date>2017-01-01</Date>
<Rate>0.01</Rate>
</Details>
</Table>
<Table>
<TableName>Table B</TableName>
<Details>
<Date>2016-01-01</Date>
<Rate>0.02</Rate>
</Details>
<Details>
<Date>2017-01-01</Date>
<Rate>0.02</Rate>
</Details>
</Table>
<Table>
<TableName>Table C</TableName>
<Details>
<Date>2016-01-01</Date>
<Rate>0.03</Rate>
</Details>
<Details>
<Date>2016-01-01</Date>
<Rate>0.04</Rate>
</Details>
<Details>
<Date>2016-01-01</Date>
<Rate>0.05</Rate>
</Details>
<Details>
<Date>2017-01-01</Date>
<Rate>0.03</Rate>
</Details>
<Details>
<Date>2017-01-01</Date>
<Rate>0.04</Rate>
</Details>
<Details>
<Date>2017-01-01</Date>
<Rate>0.05</Rate>
</Details>
</Table>
Here is the XSL:
<!--I have a variable defined $Date20170101 to get 2017-01-01-->
<xsl:if test="Details/Date = $Date20170101">
<tr>
<th>
<xsl:value-of select="TableName"/>
</th>
<td>
<!--"format-date" is to format the date to mm/dd/yyyy-->
<xsl:call-template name="format-date">
<xsl:with-param name="date">
<xsl:value-of select="Details/Date"/>
</xsl:with-param>
</xsl:call-template>
</td>
<!--Below is the problem I have-->
<xsl:if test="(Details/Rate)[1]">
<td>
<xsl:value-of select="(Details/Rate)[1]"/>
</td>
</xsl:if>
<xsl:if test="(Details/Rate)[2]">
<td>
<xsl:value-of select="(Details/Rate)[2]"/>
</td>
</xsl:if>
<xsl:if test="(Details/Rate)[3]">
<td>
<xsl:value-of select="(Details/Rate)[2]"/>
</td>
</xsl:if>
</tr>
</xsl:if>
Here is the expected results:
Table Name Date Rate1 Rate2 Rate3
Table A 1/1/2017 0.01 N/A N/A
Table B 1/1/2017 0.02 N/A N/A
Table C 1/1/2017 0.03 0.04 0.05
