This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Reformatting tables


A more generic version for more than 2 columns:

<xsl:template match="tr">
     <xsl:for-each select="td[1]/p">
         <xsl:variable name="pos" select="position()"/>
         <tr>
             <td><xsl:copy-of select="."/></td>
             <xsl:for-each select="../following-sibling::td">
                 <td><xsl:copy-of select="p[$pos]"/></td>
             </xsl:for-each>
         </tr>
     </xsl:for-each>
</xsl:template>

I only made a little test - hope it works.

Regards,

Joerg



Neil Abraham wrote:

> Hi all,
> 
> I have a large number of html tables in the following format:
> 
> <table>
>   <tr>
>     <td>
>       <p>Animal</p>
>     </td>
>     <td>
>       <p>Colour</p>
>     </td>
>   </tr>
>   <tr>
>     <td>
>       <p>Elephant</p>
>       <p>Pig</p>
>       <p>Sheep</p>
>       <p>Canary</p>
>     </td>
>     <td>
>       <p>Grey</p>
>       <p>Pink</p>
>       <p>White</p>
>       <p>Yellow</p>
>     </td>
>   </tr>
> </table>
> 
> Where someone has used FrontPage or something and has ended up creating one
> row of multiple paragraphs instead of a row for each item.
> 
> How can I write some xsl to reformat this into proper rows?  Eg:
> 
> <tr>
>   <td>
>    <p>Elephant</p>
>   </td>
>   <td>
>    <p>Grey</p>
>   </td>
> </tr>
> 
> So far I have made:
> 
> <xsl:template match="tr">
>  <xsl:for-each select="td[1]/p">
>   <tr>
>    <td><p><xsl:value-of select="."/></p></td>
>    <xsl:variable name="n" select="position()"/>
>    <td><p><xsl:value-of select="//td[2]/p[position()=$n]"/></p></td>
>   </tr>
>  </xsl:for-each>
> </xsl:template>
> 
> But this always leaves them out of sync.
> 
> What am I doing wrong?
> 
> 
> Thanks in advance,
> 
> 
> Neil.
> 
> PS. Excuse the animal colours example, the real data is confidential
> internal stuff :-)


-- 

System Development
VIRBUS AG
Fon  +49(0)341-979-7411
Fax  +49(0)341-979-7409
joerg.heinicke@virbus.de
www.virbus.de

News:
Cocoon-Premiere - Virbus AG setzt bei ShoppingMall-Plattform "Lofex"
auf neueste XML-basierende Technologie
http://www.virbus.de/de/press/pressemitteilung/20011123_lofex/index.html
http://www.lofex.de


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]