xsl中循环取数据的问题

来源:互联网 发布:c语言取反运算符 编辑:程序博客网 时间:2024/06/06 08:56

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


  • 如果数据是象下面这样描述图片信息的  
    <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>  
  • 原创粉丝点击