[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XML to HTML conversion: row wise breaking


Subject: Re: [xsl] XML to HTML conversion: row wise breaking
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Wed, 11 Oct 2006 23:39:11 +0530

I think following should work:

<xsl:for-each select=".//Feature">
 <tr align="center">
   <xsl:for-each select="Attribute">
     <td>
       <xsl:value-of select="@value"/>
     </td>
   </xsl:for-each>
 </tr>
</xsl:for-each>

On 10/11/06, Vijay Malgari <vmalgari@xxxxxxx> wrote:
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>


--
Regards,
Mukul Gandhi


Current Thread
Keywords