Hi Michael,
As always you are a great help. I am using XMLspy (2007):
Here is the final grouping:
Code:
<xsl:for-each-group select="$XML1/ROOT/ITEM[@active = 1][not(@ata)]" group-by="substring-before(substring-after(NOTICE, '-'), '0')">
<xsl:sort select="current-grouping-key()"/>
<xsl:variable name="str" select="substring-before(substring-after(NOTICE, '-'), '0')"/>
<xsl:variable name="type">
<xsl:choose>
<xsl:when test="contains($str, 'ALERT')">ALERTS</xsl:when>
<xsl:when test="starts-with($str, 'F')">FLIGHT</xsl:when>
<xsl:when test="starts-with($str, 'S')">SAFETY</xsl:when>
<xsl:when test="contains($str, 'T')">TECHNICAL</xsl:when>
<xsl:when test="contains($str, 'L')">LEARNING</xsl:when>
<xsl:otherwise>AIRPORT</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<span style="font-size:xx-small; color:lightgray; font-family:@Arial Unicode MS;">
<p align="right">
<a href="#top">[Return to Top]</a>
</p>
</span>
<table width="100%">
<tbody>
<tr>
<td colspan="3">
<a name="{current-grouping-key()}">
<h2>
<xsl:value-of select="$type"/>
</h2>
</a>
</td>
</tr>
<tr align="center" bgcolor="silver" style="font-weight:bold;">
<td width="100">Notice</td>
<td>Description</td>
<td width="125">Issue Date</td>
</tr>
<xsl:for-each-group select="current-group()" group-by="NOTICE">
<tr>
<td width="125">
<a href="{LINK}">
<xsl:value-of select="NOTICE"/>
</a>
</td>
<td>
<xsl:value-of select="upper-case(NAME)"/>
</td>
<td>
<xsl:value-of select="format-number(number(substring(string(ISSUED), 6, 2)), '00')"/>
<xsl:text> / </xsl:text>
<xsl:value-of select="format-number(number(substring(string(ISSUED), 9, 2)), '00')"/>
<xsl:text> / </xsl:text>
<xsl:value-of select="format-number(number(substring(string(string(ISSUED)), 1, 4)), '0000')"/>
</td>
</tr>
</xsl:for-each-group>
</tbody>
</table>
</xsl:for-each-group>
The first group, group the department name. The inner grouping displays the <NOTICE> by department.
I am currently converting legacy data to XML. The <NOTICE> element can be broken down by year, department, type etc...
the output looks something like this in html:
Code:
Notice Description Issue Date
2006-AXX zzz 03 / 31 / 2006
2006-AXXTR xxx 04 / 13 / 2006
2006-AXXX A xxx 06 / 02 / 2006
[Return to Top]
ALERTS
Notice Description Issue Date
2004-ALERT-XXX xx 02 / 24 / 2004
2004-ALERT-XXx xx 04 / 23 / 2004
on so on....
If there is a more efficient way, I am listening :)
thanks