xsl-list
[Top] [All Lists]

RE: [xsl] Grouping Titles under Correct Category

2007-05-11 13:10:12
This is a completely standard grouping problem. Grouping is much easier in
XSLT 2.0 using xsl:for-each-group, but if you really need to stick with 1.0,
go to http://www.jenitennison.com/xslt/grouping to learn how to do it.

This code:

string-length(category) != string-length(following::category)

is wildly out.

And why do you want to disable-output-escaping?

Michael Kay
http://www.saxonica.com/
 

-----Original Message-----
From: Brent Solly [mailto:free12spir(_at_)yahoo(_dot_)com] 
Sent: 11 May 2007 20:37
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Grouping Titles under Correct Category

Input XML
----------
<?xml version="1.0" encoding="UTF-8"?>
<rss>
<channel>   
      <item>
         <title>Ogre Battle is sold out</title>
         <description> There is a high demand for this rare 
game.</description>
         <category>SNES</category>       
      </item>
      <item>
         <title>Final Fantasy 3 Breaks FF2 Record</title>
         <description>It was thought impossible to outdo FF2 
gameplay.</description>
         <category>SNES</category>  
      </item>
      <item>
         <title>SNES is the Ultimate System</title>
         <description>This new system has revolutionized 
controller design.</description>
         <category>SNES</category>   
      </item>
      <item>
         <title>Sonic The Hedgehog an instant success</title>
         <description>A new Mario is been born.</description>
         <category>SEGA Genesis</category>
      </item>
      <item>
         <title>Joe Montanna Talking Football is amazing</title>
         <description>Listen play by play in this new form of 
football game.</description>
         <category>SEGA Genesis</category>
      </item>
 </channel>
</rss>
----------------

Stylesheet
-----------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:strip-space elements="*" />
<xsl: output method="html" encoding="UTF-8"/>
<!--Author: Brent Solly-->
<!--Games -->
<xsl:template name="body" match="/">
    <xsl:choose>
          <xsl:when test="rss/channel/generator = 'Systems'">
   <!-- Lists all categories, but not at top of titles
-->
 <xsl:for-each select="rss/channel/item">
     <xsl:variable name="tracker"
select="position()-1"/>
      <xsl:if test="category != ''">
        <xsl:if test="string-length(category) != 
string-length(following::category)">
           <b><xsl:value-of
select="category"/></b><br/>         
         </xsl:if>
      <xsl:value-of select="//item[$tracker]/title"
disable-output-escaping="yes"/><br/> 
      </xsl:if> 
   </xsl:for-each>
  </xsl:when>
  </xsl:choose>
</xsl:template>
</xsl:stylesheet>
-----------



Desired Output
--------------
SNES
  Ogre Battle is sold out
  Final Fantasy 3 Breaks FF2 Record
  SNES is the ultimate system

SEGA Genesis
  Sonic The Hedgehog an instant success
  Joe Montanna Talking Football is amazing
  
---------------


Output Received
--------------------------
Ogre Battle is sold out
SNES
Final Fantasy 3 Breaks FF2 Record
SNES is the Ultimate System
SEGA Genesis
Sonic The Hedgehog an instant success
------------------------------

Is there anyway to achieve the Desired Output?  I have seen 
many hints, but still no luck.

I'm using the Cooktop development environment.  Its a 
freeware, and not supported anymore, but still works nicely.
Processor Version: XSLT Processor VersionVendor:
TransformiixVendor 

version="1.0"


Any state, any entity, any ideology that fails to recognize 
the worth, the dignity, the rights of man - That state is obsolete.
-spooky man from Twilight Zone (1961)

http://s8.invisionfree.com/Solo_Tee_and_Company/index.php?act=idx

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