Ich habe eine XML-Datei wie unten aussieht und ich würde die Rate von einem bestimmten Datum (2017.01.01 in meinem Beispiel) zu bekommen. Aber das Problem ist, einige von ihnen haben mehrere Raten und sie sollten alle horizontal herauskommen. Das Format hat kein Problem und ich kann die Rate1 basierend auf xsl:stylesheet version="1.0"
erhalten. Aber wie bekomme ich die Rate2 und Rate3? Bitte helfen Sie und hier ist das Beispiel. HierXML - XSL zur Auswahl bestimmter Knoten und Ausgang horizontal
ist die 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>
Hier wird die XSL ist:
<!--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>
Hier ist die erwarteten Ergebnisse:
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
Also, wenn man der Tabellen hat 5 Preise für die angegebenen Daten, möchten Sie die Ausgabe 5 * RateN * Spalten haben? –
Vielen Dank für Ihre Hilfe. Die maximalen Spalten der Preise werden 3 und nicht mehr sein. Ich hoffe, dass sie diese Anforderung in Zukunft nicht erhöhen. – ian0411