Re: [xsl] Transformation assistance please..

Subject: Re: [xsl] Transformation assistance please..
From: "Jay Bryant" <jay@xxxxxxxxxxxx>
Date: Sun, 30 Jul 2006 23:54:31 -0500
Hi, Bret,

Here's one solution.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output method="html" indent="yes"/>

  <xsl:template match="hemoDynamicTables">
    <html>
      <xsl:apply-templates/>
    </html>
  </xsl:template>

  <xsl:template match="cardiacOutput">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="cardiacOutputTime1">
    <table>
      <tr>
        <th>Time</th>
        <th>Stage</th>
        <th>CO</th>
        <th>O2</th>
        <th>SpO2</th>
        <th>He</th>
        <th>xyz</th>
      </tr>
      <xsl:apply-templates/>
    </table>
  </xsl:template>

  <xsl:template match="measurement">
    <tr>
      <td><xsl:value-of select="@stage"/></td>
      <td><xsl:value-of select="@time"/></td>
      <xsl:choose>
        <xsl:when test="@type='CO'">
          <td><xsl:value-of select="."/> <xsl:value-of select="uom"/></td>
          <td>&#160;</td>
          <td>&#160;</td>
          <td>&#160;</td>
          <td>&#160;</td>
        </xsl:when>
        <xsl:when test="@type='O2'">
          <td>&#160;</td>
          <td><xsl:value-of select="."/> <xsl:value-of select="uom"/></td>
          <td>&#160;</td>
          <td>&#160;</td>
          <td>&#160;</td>
        </xsl:when>
        <xsl:when test="@type='SpO2'">
          <td>&#160;</td>
          <td>&#160;</td>
          <td><xsl:value-of select="."/> <xsl:value-of select="uom"/></td>
          <td>&#160;</td>
          <td>&#160;</td>
        </xsl:when>
        <xsl:when test="@type='He'">
          <td>&#160;</td>
          <td>&#160;</td>
          <td>&#160;</td>
          <td><xsl:value-of select="."/> <xsl:value-of select="uom"/></td>
          <td>&#160;</td>
        </xsl:when>
        <xsl:when test="@type='xyz'">
          <td>&#160;</td>
          <td>&#160;</td>
          <td>&#160;</td>
          <td>&#160;</td>
          <td><xsl:value-of select="."/> <xsl:value-of select="uom"/></td>
        </xsl:when>
        <xsl:otherwise>
          <xsl:message>Error</xsl:message>
        </xsl:otherwise>
      </xsl:choose>
    </tr>
  </xsl:template>

</xsl:stylesheet>

I'm sure (because I can think of them) that there are other ways, but this
one works and is (I hope) easy to follow. I tested it with Xalan-J.

Welcome to XSLT.

Jay Bryant
Bryant Communication Services

----- Original Message ----- 
From: "smithbm33" <smithbm33@xxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Sunday, July 30, 2006 11:26 PM
Subject: [xsl] Transformation assistance please..


> Greetings,
>
> I am new to using XSLT 1.0 - I have the following XML
> that I need to transform into HTML table format based
> on attributes within the xml.  Any suggestions on how
> to transform this would be of great assistance.
>
> Here is the XML:
>
> <hemoDynamicTables>
>   <cardiacOutput>
>     <cardiacOutputTime1>
>       <measurement stage="Pre" time="12:01" type="CO"
> uom="L/m">4.0</measurement>
>       <measurement stage="Pre" time="12:02" type="O2"
> uom="%">98</measurement>
>       <measurement stage="Post" time="12:05" type="O2"
> uom="%">88</measurement>
>       <measurement stage="During" time="12:04"
> type="SpO2" uom="%">40</measurement>
>       <measurement stage="Pre" time="12:02 "
> type="xyz" uom="ml">300</measurement>
>       <measurement stage="During" time="12:02"
> type="He" uom="%">100</measurement>
>     </cardiacOutputTime1>
>   </cardiacOutput>
> </hemoDynamicTables>
>
> The HTML table output that I need is:
>
> Time  | Stage | CO  | O2 | SpO2 | He  | xyz |
> ---------------------------------------------
> 12:01 | Pre   | 4.0 |    |      |     |     |
> ---------------------------------------------
> 12:02 | Pre   |     | 98 |      |     | 300 |
> ---------------------------------------------
> 12:02 | During|     |    |      | 98  |     |
> ---------------------------------------------
> 12:04 | During|     |    | 40   |     |     |
> ---------------------------------------------
> 12:05 | Post  |     | 88 |      |     |     |
> ---------------------------------------------
>
> Thanks - Bret
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com

Current Thread