xsl中循环取数据的问题

----------------------------------------------------------------------------------------

  • 如果数据是象下面这样描述图片信息的  
    <root>  
     
    <pic>  
    <filename>1.jpg</filename>  
    <size>120</size>  
    <link>1.htm<link>  
    </pic>  
     
    <pic>  
    <filename>2.jpg</filename>  
    <size>120</size>  
    <link>2.htm<link>  
    </pic>  
     
    <pic>  
    <filename>3.jpg</filename>  
    <size>120</size>  
    <link>3.htm<link>  
    </pic>  
     
    <pic>  
    <filename>4.jpg</filename>  
    <size>120</size>  
    <link>4.htm<link>  
    </pic>  
     
    ....一直到...  
     
    <pic>  
    <filename>n.jpg</filename>  
    <size>120</size>  
    <link>n.htm<link>  
    </pic>  
     
    </root>  
     
    怎么样才能做一个表格效果,实现每取4组图片数据换让图片显示换一次行呢?如下效果,每一数字代表一幅图  
     
    1 2 3 4  
    5 6 7 8  
    .....  
    n n+1  n+2  n+3  
     
    ---------------------------------------------------------------  
     
    <?xml  version="1.0"  encoding="UTF-8"?>  
    <xsl:stylesheet  version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
       <xsl:output  method="html"  indent="yes"/>  
       <xsl:template  match="/">  
           <table>  
               <xsl:apply-templates  select="/root/pic"/>  
           </table>  
       </xsl:template>  
       <xsl:template  match="pic[position()  mod  4  =  1]">  
           <tr>  
               <td>  
                   <xsl:value-of  select="filename"/>  
               </td>  
               <td>  
                   <xsl:value-of  select="following-sibling::pic[1]/filename"/>  
               </td>  
               <td>  
                   <xsl:value-of  select="following-sibling::pic[2]/filename"/>  
               </td>  
               <td>  
                   <xsl:value-of  select="following-sibling::pic[3]/filename"/>  
               </td>  
           </tr>  
       </xsl:template>  
       <xsl:template  match="pic"/>  
    </xsl:stylesheet>  
     
    ---------------------------------------------------------------  
     
    三行的只要修改这一块。  
    <xsl:template  match="pic[position()  mod  3  =  1]">  
           <tr>  
               <td>  
                   <img  src="{filename}"/>  
               </td>  
               <td>  
                   <img  src="{following-sibling::pic[1]/filename}"/>  
               </td>  
               <td>  
                   <img  src="{following-sibling::pic[2]/filename}"/>  
               </td>  
           </tr>  
       </xsl:template>  
     
    ---------------------------------------------------------------  
     
    那么你就多谢几句,每个都类似:  
       <td>  
           <xsl:choose>  
               <xsl:when  test="following-sibling::pic[2]">  
                   <a  href="{following-sibling::pic[2]/link}">  
                       <img  border="0"  src="{following-sibling::pic[2]/filename}"/>  
                   </a>  
               </xsl:when>  
               <xsl:otherwise>  
                   <img  src="chacha.gif"/>  
               </xsl:otherwise>  
           </xsl:choose>  
       </td>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值