RE: [xsl] XSL formatting

Subject: RE: [xsl] XSL formatting
From: "Shailesh Shinde" <shailesh@xxxxxxxxxxxx>
Date: Mon, 26 Dec 2005 18:18:40 +0530
Thanks a lot! It's working fine.

-----Original Message-----
From: George Cristian Bina [mailto:george@xxxxxxxxxxxxx] 
Sent: Friday, December 23, 2005 9:48 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] XSL formatting

No, you need to code that in a more generic way. Something like below 
should work:

<xsl:transform version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
   <xsl:template match="/imgBook">
     <html>
       <head>
         <title>Sample</title>
       </head>
       <body>
         <table border="1">
           <xsl:for-each select="*">
             <td>
               <xsl:value-of select="name()"/>
             </td>
           </xsl:for-each>
           <xsl:for-each select=".//img">
             <xsl:variable name="p" select="position()"/>
             <xsl:if test="/imgBook/*/img[$p]">
               <xsl:variable name="pos" select="position()"/>
               <tr>
                 <xsl:for-each select="/imgBook/*">
                   <td>
                     <xsl:value-of select="img[$pos]/@name"/>
                   </td>
                 </xsl:for-each>
               </tr>
             </xsl:if>
           </xsl:for-each>
         </table>
       </body>
     </html>
   </xsl:template>
</xsl:transform>


Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


Shailesh Shinde wrote:
> Hi,
> 
> What if there are more than two columns, does the below mentioned xsl will
> work. 
> 
> <xsl:transform version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>    <xsl:template match="/imgBook">
>      <html>
>        <head>
>          <title>Sample</title>
>        </head>
>        <body>
>          <table border="1">
>            <tr>
>              <td>missing</td>
>              <td>redundant</td>
> 
> 		 <td>c_match</td>
> 	       <td>sv</td>
>              <td>pn</td>
>            </tr>
>            <xsl:for-each select="missing/img">
>              <xsl:variable name="pos" select="position()"/>
>              <tr>
>                <td>
>                  <xsl:value-of select="@name"/>
>                </td>
>                <td>
>                  <xsl:value-of select="../../redundant/img[$pos]/@name"/>
>                </td>
> 
>                <td>
>                  <xsl:value-of select="../../c_match/img[$pos]/@name"/>
>                </td>
>                <td>
>                  <xsl:value-of select="../../sv/img[$pos]/@name"/>
>                </td>
>                <td>
>                  <xsl:value-of select="../../pn/img[$pos]/@name"/>
>                </td>
>              </tr>
>            </xsl:for-each>
>            <xsl:variable name="mc" select="count(missing/img)"/>
> 		What needs to be count for missing?
> 
> 		
> 		For other columns below will work just change the column
> name and add <td/>, is this right?
> 
>            <xsl:for-each select="redundant/img[position()>$mc]">
>              <tr>
>                <td/>
>                <td>
>                  <xsl:value-of select="@name"/>
>                </td>
>              </tr>
>            </xsl:for-each>
> 
> 
> 
> 
>          </table>
>        </body>
>      </html>
>    </xsl:template>
> </xsl:transform>

Current Thread