[xsl] XML to HTML conversion: row wise breaking

Subject: [xsl] XML to HTML conversion: row wise breaking
From: Vijay Malgari <vmalgari@xxxxxxx>
Date: Wed, 11 Oct 2006 09:47:51 -0400
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[@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[@name='Hurricanes']">
</xsl:template>
<xsl:template match="Category[@name='Wild Fires']">
</xsl:template>
<xsl:template match="Category[@name='Earthquakes']">
</xsl:template>
<xsl:template match="Category[@name='Flood']">
</xsl:template>
<xsl:template match="Category[@name='Imagery']">
</xsl:template>
</xsl:stylesheet>


Current Thread