xsl-list
[Top] [All Lists]

[xsl] XML to HTML conversion: row wise breaking

2006-10-11 06:43:36
Hello All,
I am missing something when it comes to row-wise insertions inside table. Attached are the sample XSL and sample XML. Inside XSL, I have a transformation structure like:

<tr align="center">
<xsl:for-each select="descendant-or-self::Feature[1]/Attribute">
<td>
<xsl:value-of select="@value"/>
</td>
</xsl:for-each>
</tr>

but I want to make it dynamic, hence, I can get rid of explicit numbering inside Feature[]. I did poke around using mod and position but no success yet. Any tips are greatly appreciated.
Thanks, VJ

---------
XML file
---------
<XLS xmlns:gml="http://www.opengis.net/gml"; version="1.0">

<ResponseHeader/>

<Response numberOfResponses="1">
  <GeocodeResponse>
    <GeocodeResponseList numberOfGeocodedAddresses="1">
      <GeocodedAddress>
        <Point>
          <gml:pos>-77.069363 38.894926</gml:pos>
        </Point>
        <Address countryCode="US">
          <StreetAddress>
            <Building number="1601"/>
       <Street directionalPrefix="N" officialName="KENT" typeSuffix="ST"/>
          </StreetAddress>
          <Place type="CountrySubdivision">VA</Place>
          <Place type="Municipality">ARLINGTON</Place>
          <PostalCode>22209</PostalCode>
        </Address>
    <GeocodeMatchCode accuracy="1.0" matchType="House"/>
      </GeocodedAddress>
    </GeocodeResponseList>
  </GeocodeResponse>

  <HazardReport>

    <Category name="Tornadoes">

       <Dataset title="Detected Tornado Reports">
<Description>Tornado cyclones sensed, derived from Doppler radar signatures.</Description>
          <Features>

            <Feature relationship="Intersects">
              <Attribute name="Date" value="2006-04-17/22:56:22"/>
<Attribute name="Vortex Signature" value="ETVS">Tor vor sig detected</Attribute>
              <Attribute name="Storm Latitude" value="33.435"/>
              <Attribute name="Storm Longitude" value="-77.79"/>
            </Feature>

            <Feature relationship="Intersects">
              <Attribute name="Date" value="2005-04-17/22:56:22"/>
<Attribute name="Vortex Signature" value="EETVS">Tor vor sig detected</Attribute>
              <Attribute name="Storm Latitude" value="33.535"/>
              <Attribute name="Storm Longitude" value="-77.79"/>
            </Feature>

            <Feature relationship="Intersects">
              <Attribute name="Date" value="2004-04-17/22:56:22"/>
<Attribute name="Vortex Signature" value="EEETVS">Tor vor sig detected</Attribute>
              <Attribute name="Storm Latitude" value="33.635"/>
              <Attribute name="Storm Longitude" value="-77.79"/>
            </Feature>
                                     </Features>
        </Dataset>


        <Dataset title="Sighted Tornado Reports">
          <Description>Tornado cyclones sighted within 4 km.</Description>

          <Features>

            <Feature relationship="440 meters distant">
              <Attribute name="Date" value="2006-01-13/19:38:00"/>
<Attribute name="Description" value="SHERIFF SPOTTED A TORNADO MOVING NORTHEAST.">Description of tornadic event.</Attribute> <Attribute name="Fujita Scale" value="F3">The Fujita Scale, if available. -1000 indicates no scale determined.</Attribute>
              <Attribute name="Tornado Latitude" value="31.52"/>
              <Attribute name="Tornado Longitude" value="-84.92"/>
            </Feature>

            <Feature relationship="880 meters distant">
              <Attribute name="Date" value="2006-01-13/20:38:00"/>
<Attribute name="Description" value="Jesse saw it! Look Out!">Description of tornadic event.</Attribute> <Attribute name="Fujita Scale" value="-1000">The Fujita Scale, if available. -1000 indicates no scale determined.</Attribute>
              <Attribute name="Tornado Latitude" value="31.52"/>
              <Attribute name="Tornado Longitude" value="-84.92"/>
            </Feature>

            <Feature relationship="1660 meters distant">
              <Attribute name="Date" value="2006-01-13/21:38:00"/>
<Attribute name="Description" value="Captured video from Vijay">Description of tornadic event.</Attribute> <Attribute name="Fujita Scale" value="F5">The Fujita Scale, if available. -1000 indicates no scale determined.</Attribute>
              <Attribute name="Tornado Latitude" value="31.52"/>
              <Attribute name="Tornado Longitude" value="-84.92"/>
            </Feature>
                                     </Features>
        </Dataset>

        <Dataset title="Tornado Warnings">

<Description>The National Weather Service has issued a tornado warning for the area.</Description>
          <Features>

            <Feature relationship="Intersects">
              <Attribute name="Issue Date" value="2006-05-05/13:29:00"/>
<Attribute name="Expiration Date" value="2006-05-05/14:15:00"/>
            </Feature>

            <Feature relationship="Intersects">
              <Attribute name="Issue Date" value="2006-05-05/14:29:00"/>
<Attribute name="Expiration Date" value="2006-05-06/05:15:00"/>
            </Feature>

            <Feature relationship="Intersects">
              <Attribute name="Issue Date" value="2006-05-08/03:29:00"/>
<Attribute name="Expiration Date" value="2006-05-08/04:15:00"/>
            </Feature>

            <Feature relationship="Intersects">
              <Attribute name="Issue Date" value="2006-05-05/16:29:00"/>
<Attribute name="Expiration Date" value="2006-05-05/17:15:00"/>
            </Feature>

          </Features>
        </Dataset>
      </Category>

  </HazardReport>
</Response>
</XLS>

---------
XSL FILE
---------
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"; xmlns:gml="http://www.opengis.net/gml"; xmlns:date="http://exslt.org/dates-and-times"; xmlns:str="http://exslt.org/strings"; xmlns:hdm="http://namespace"; xmlns:css="http://www.w3.org/TR/XSL-for-CSS"; xmlns="http://www.w3.org/1999/xhtml";>
   <xsl:template match="/">
       <html>
           <head>
<link rel="stylesheet" type="text/css" href="http://dutton:8080/insmap/styles/InsMapStyles.css"/> <link rel="stylesheet" type="text/css" href="http://dutton:8080/insmap/styles/moduleStyles.css"/> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
           </head>
           <body>
               <xsl:apply-templates/>
           </body>
       </html>
   </xsl:template>
   <xsl:template match="GeocodeResponse">
   </xsl:template>
   <xsl:template match="Category[(_at_)name='Tornadoes']">
       <div class="block-large">
<h3 id="winds" class="tornado-header">Tornados<img src="http://dutton:8080/insmap/images/portfolio/tornado_icon.png"; width="44" height="44" class="haz_icon"/>
           </h3>
           <div class="block-tornado-content">
<table width="100%" border="0" cellpadding="1" cellspacing="3">
                   <xsl:for-each select="Dataset">
                       <tr>
<xsl:for-each select="descendant-or-self::Feature[1]/Attribute">
                               <th>
                                   <xsl:value-of select="@name"/>
                               </th>
                           </xsl:for-each>
                       </tr>
                       <tr align="center">
<xsl:for-each select="descendant-or-self::Feature[1]/Attribute">
                               <td>
                                   <xsl:value-of select="@value"/>
                               </td>
                           </xsl:for-each>
                       </tr>
                       <tr align="center">
<xsl:for-each select="descendant-or-self::Feature[2]/Attribute">
                               <td>
                                   <xsl:value-of select="@value"/>
                               </td>
                           </xsl:for-each>
                       </tr>
                       <tr align="center">
<xsl:for-each select="descendant-or-self::Feature[3]/Attribute">
                               <td>
                                   <xsl:value-of select="@value"/>
                               </td>
                           </xsl:for-each>
                       </tr>
                   </xsl:for-each>
               </table>
           </div>
       </div>
   </xsl:template>
   <xsl:template match="Category[(_at_)name='Hurricanes']">
   </xsl:template>
   <xsl:template match="Category[(_at_)name='Wild Fires']">
   </xsl:template>
   <xsl:template match="Category[(_at_)name='Earthquakes']">
   </xsl:template>
   <xsl:template match="Category[(_at_)name='Flood']">
   </xsl:template>
   <xsl:template match="Category[(_at_)name='Imagery']">
   </xsl:template>
</xsl:stylesheet>



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>