xsl-list
[Top] [All Lists]

RE: [xsl] empty row between types

2006-12-08 13:43:55
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
 <xsl:strip-space elements="*" />
 <xsl:output method="xml" indent="yes" encoding="UTF-8" />

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

                <xsl:template match="data">
                  <xsl:apply-templates />
                </xsl:template>
                
 <xsl:template match="row[following-sibling::row/@type = @type]">
 <tr><td><xsl:value-of select="@type"/></td></tr>
 </xsl:template>

 <xsl:template match="row[not(following-sibling::row/@type = @type)]">
        <xsl:choose>
                <xsl:when test="position() = last()">
                        <tr><td><xsl:value-of select="@type"/></td></tr>
                </xsl:when>
                <xsl:otherwise>
                          <tr><td><xsl:value-of select="@type"/></td></tr>
                          <tr><td></td></tr>
                </xsl:otherwise>
        </xsl:choose>
 </xsl:template>

</xsl:stylesheet>
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     Sam Carleton <scarleton(_at_)miltonstreet(_dot_)com>
Sent:     Fri, 8 Dec 2006 14:20:35 -0500
To:       xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject:  [xsl] empty row between types

Here is my data:

<data>
 <row type="red"></row>
 <row type="red"></row>
 <row type="red"></row>
 <row type="blue"></row>
 <row type="blue"></row>
 <row type="blue"></row>
</data>

What I want is a blank row between the red and the blue:

<table border="1">
   <tr><th>Color</th></tr>
   <tr><td>red</td></tr>
   <tr><td>red</td></tr>
   <tr><td>red</td></tr>
   <tr><td></td></tr>
   <tr><td>blue</td></tr>
   <tr><td>blue</td></tr>
   <tr><td>blue</td></tr>
</table>

Here is the good old basic XSLT, that does not include the empty row between:

<xsl:template match="data">
   <html>
     <body>
       <table border="1">
         <tr><th>Color</th></tr>
         <xsl:apply-templates/>
       </table>
     </body>
   </html>
 </xsl:template>

 <xsl:template match="row">
 <tr><td><xsl:value-of select="@type"/></td></tr>
 </xsl:template>

How do I go about getting the empty row.  Oh, there is one catch, I do
*NOT* know what the types are or when they will change.  I only know
there *MIGHT* be different types, might not.

P.S. I am working with the Microsoft .Net 2.0 XSLT Transformer, IE XSLT 1.

Sam
--
Miltonstreet Photography
http://www.miltonstreet.com

--~------------------------------------------------------------------
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>
--~--




--~------------------------------------------------------------------
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>