|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: building a tabular format of data
Here's what I came up with --
************
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Windows-1252"/>
<xsl:key name="GetDates" match="testdatetime" use="." />
<xsl:key name="GetElements" match="testname" use="." />
<xsl:template match="/">
<html>
<head></head>
<body>
<table border="1">
<tr>
<td><xsl:text> </xsl:text></td>
<xsl:for-each select="/reportdetailinfo/testreport/testdatetime[count(. | key('GetDates', .)[1]) = 1]">
<td><xsl:value-of select="." /></td>
</xsl:for-each>
</tr>
<xsl:apply-templates select = "/reportdetailinfo/testreport">
<xsl:sort select="testname" order="ascending"/>
</xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="testreport">
<xsl:for-each select="testname[count(. | key('GetElements', .)[1]) = 1]">
<xsl:apply-templates select = "." />
</xsl:for-each>
</xsl:template>
<xsl:template match="testname">
<tr>
<td><xsl:value-of select="." /></td>
<xsl:call-template name="ElementDetails">
<xsl:with-param name="theTestName" select="."/>
</xsl:call-template>
</tr>
</xsl:template>
<xsl:template name="ElementDetails">
<xsl:param name="theTestName"/>
<xsl:for-each select="/reportdetailinfo/testreport/testdatetime[count(. | key('GetDates', .)[1]) = 1]">
<xsl:variable name = "theTestDateTime" select = "." />
<xsl:choose>
<xsl:when test="/reportdetailinfo/testreport[testname=$theTestName and testdatetime=$theTestDateTime]">
<td><xsl:value-of select="/reportdetailinfo/testreport[testname=$theTestName and testdatetime=$theTestDateTime]/testresult" /></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:text> </xsl:text></td>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
***********
and here's the HTML output
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<table border="1">
<tr>
<td> </td>
<td>12/12/98 10 am</td>
<td>12/21/98 12-30 am</td>
<td>10/16/97 10 pm</td>
</tr>
<tr>
<td>Potassium</td>
<td>33.6</td>
<td> </td>
<td>10.89</td>
</tr>
<tr>
<td>Saline</td>
<td>10.54</td>
<td>15</td>
<td> </td>
</tr>
<tr>
<td>Sodium</td>
<td>16.84</td>
<td>11.66</td>
<td> </td>
</tr>
</table>
</body>
</html>
***********
HTH,
Atul
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








