Re: [xsl] Ordering my HTML output

Subject: Re: [xsl] Ordering my HTML output
From: James Fuller <jim.fuller@xxxxxxxxxxxxxx>
Date: Tue, 01 Mar 2005 13:22:20 +0100
Aaron McGrath wrote:

Hi All!

I have looked through the list and don't seem to find anything that answers my specific question, but if there is... I apologise!

I have an xml file similar to this:
<abs:body>
  <abs:heading class='100' string='test'>
     <abs:heading class='200' string='tester'></abs:heading>
        <abs:heading class='300' string='sometext'></abs:heading>
        <abs:heading class='300' string='somemoretext'></abs:heading>
     <abs:heading class='200' string='testing'></abs:heading>
  </abs:heading>
</abs:body>

This is the output I would like:

class = 200 string='tester'
class = 200 string='testing'
class = 300 string='sometext'
class = 300 string='somemoretext'



if i understand correctly


taken the following xml (note I assumed the encapsulation...couldnt really understand in your email)

<?xml version="1.0" encoding="UTF-8"?>
<abs:body xmlns:abs="http://www.example.org/test";>
   <abs:heading class="100" string="test">
       <abs:heading class="200" string="tester">
           <abs:heading class="300" string="sometext"/>
           <abs:heading class="300" string="somemoretext"/>
       </abs:heading>
   </abs:heading>
</abs:body>

with this xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
   xmlns:abs="http://www.example.org/test";
   version="1.0">
   <xsl:template match="abs:body">

       <xsl:apply-templates select="//abs:heading">
           <xsl:sort select="@class"/>
       </xsl:apply-templates>

</xsl:template>
<xsl:template match="abs:heading"> class = <xsl:value-of select="@class"/> string='<xsl:value-of select="@string"/>' </xsl:template>
</xsl:stylesheet>


will give u part of the solution...note the usage of <xsl:sort/>...

if u want to omit something from processing just add a matching template which prints out nothing

<xsl:template match="abs:heading[@class='somevalue']"></xsl:template>

note u must supply the somevalue

hth, Jim Fuller

Current Thread