I’ am using a XLST file to format the XML schedule data in to HTML tables. I would like to have a empty(blank) line between each diffrent employee.
The next employee name comes directly after the one before, I would like a line break between each different employee. (That would make the whole schedule much easier to read/view)
So far what I’ve got is just a simple XSLT for-each loop.
For example the XML file looks like this:
Expand|Select|Wrap|Line Numbers
- <shift>
- <EmployeeName>John</EmployeeName>
- <shiftdate>2006-05-05</shiftdate>
- <starttime>06:00</ starttime>
- <endtime>12:00</ endtime>
- </shift>
- <shift>
- <EmployeeName>John</EmployeeName>
- <shiftdate>2006-05-06</shiftdate>
- <starttime>06:00</ starttime>
- <endtime>12:00</ endtime>
- </shift>
- <shift>
- <EmployeeName>John</EmployeeName>
- <shiftdate>2006-05-07</shiftdate>
- <starttime>09:00</ starttime>
- <endtime>18:00</ endtime>
- </shift>
- <shift>
- <EmployeeName>Erik</EmployeeName>
- <shiftdate>2006-05-08</shiftdate>
- <starttime>08:00</ starttime>
- <endtime>14:00</ endtime>
- </shift>
Expand|Select|Wrap|Line Numbers
- <table>
- <tr>
- <td>Name</td>
- <td>date</td>
- <td>Start </td>
- <td>end -time</td>
- </tr>
- <xsl:for-each select="shift">
- <xsl:sort select="EmployeeName" />
- <tr>
- <td>
- <xsl:value-of select="EmployeeName" />
- </td>
- <td>
- <xsl:value-of select="substring(shiftdate, 9, 2)"/> -
- <xsl:value-of select="substring(shiftdate, 6, 2)"/> -
- <xsl:value-of select="substring(shiftdate, 1, 4)"/>
- </td>
- <td>
- <xsl:value-of select="starttime" /> -
- </td>
- <td>
- <xsl:value-of select="endtime" />
- </td>
- </tr>
- </xsl:for-each>
- </table>
Expand|Select|Wrap|Line Numbers
- Name date start end -time
- John 2006-05-05 06:00-12:00
- John 2006-05-05 06:00-12:00
- John 2006-05-05 09:00-18:00
- Erik 2006-05-06 08:00-14:00
- Erik 2006-05-07 06:00-12:00
- Nick 2006-05-05 12:00-20:00
- Nick 2006-05-06 14:00-22:00
- Nick 2006-05-07 14:00-22:00
- Mary 2006-05-05 10:00-20:00
Expand|Select|Wrap|Line Numbers
- Name date start end -time
- John 2006-05-05 06:00-12:00
- John 2006-05-05 06:00-12:00
- John 2006-05-05 09:00-18:00
- Erik 2006-05-06 08:00-14:00
- Erik 2006-05-07 06:00-12:00
- Nick 2006-05-05 12:00-20:00
- Nick 2006-05-06 14:00-22:00
- Nick 2006-05-07 14:00-22:00
- Mary 2006-05-05 10:00-20:00
Expand|Select|Wrap|Line Numbers
- <xsl:if test="preceding::EmployeeName!= EmployeeName">
- <br />
- </xsl:if>