[xsl] Creating flattened HTML table

Subject: [xsl] Creating flattened HTML table
From: Steven Skarupa <steven.skarupa@xxxxxxx>
Date: Wed, 23 Apr 2003 14:52:40 -0400
 
I'm new at xsl and I'm having problems with flattening(?) a multi-level
structure into a HTML table. I'm actually quite embarassed to be posting as I
feel this should be relatively easy to solve. 

I need to create a table that looks like this:

Group1_name SubGroup1_name Data_name Data_attrib1 Data_attrib2
                           Data_name Data_attrib1 Data_attrib2 
            SubGroup2_name Data_name Data_attrib1 Data_attrib2
                           Data_name Data_attrib1 Data_attrib2 
Group2_name SubGroup1_name Data_name Data_attrib1 Data_attrib2
                           Data_name Data_attrib1 Data_attrib2
 
or in HTML:

<table border="1">
  <tr>
    <td>Group1_name</td>
    <td>SubGroup1_name</td>
    <td>Data_name</td>
    <td>Data_attrib1</td>
    <td>Data_attrib2</td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
    <td>Data_name</td>
    <td>Data_attrib1</td>
    <td>Data_attrib2</td>
  </tr>
  <tr>
    <td> </td>
    <td>SubGroup2_name</td>
    <td>Data_name</td>
    <td>Data_attrib1</td>
    <td>Data_attrib2</td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
    <td>Data_name</td>
    <td>Data_attrib1</td>
    <td>Data_attrib2</td>
  </tr>
  <tr>
    <td>Group2_name</td>
    <td>SubGroup1_name</td>
    <td>Data_name</td>
    <td>Data_attrib1</td>
    <td>Data_attrib2</td>
  </tr>
</table> 

The data is nicely formatted in pre-sorted heirarchical format (I also have
full control of the format of the input):

<example>
  <group>
    <name>group1_name</name>
      <subgroup>
        <name>subgroup1_name</name>
          <data attrib1="attrib1" attrib2="attrib2">
            <name>Data_name</name>
          </data>
          <data attrib1="attrib1" attrib2="attrib2">
            <name>Data_name</name>
          </data>
      </subgroup>
      <subgroup>
        <name>subgroup2_name</name>
          <data attrib1="attrib1" attrib2="attrib2">
            <name>Data_name</name>
          </data>
          <data attrib1="attrib1" attrib2="attrib2">
            <name>Data_name</name>
          </data>
      </subgroup>
  </group>
  <group>
    <name>Group2_name</name>
      <subgroup>
        <name>subgroup1_name</name>
          <data attrib1="attrib1" attrib2="attrib2">
            <name>Data_name</name>
          </data>
      </subgroup>
  </group>
</example> 

I can't seem to correctly suppress the group name and the subgroup
name when it is repeated. Can anyone help?

Thanks in advance,

-Steve Skarupa
 
 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread