xsl中循环取数据的问题

转载 2006年06月13日 09:05:00

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


  • 如果数据是象下面这样描述图片信息的  
    <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>  
  • 相关文章推荐

    循环数列问题(带数据)

    • 2013年03月31日 20:55
    • 10KB
    • 下载

    XSL控制循环次数

    XSL需要添加循环的情况有:自定义循环次数;根据源XML文件中有重复的标签等等。 对于源XML有重复标签的又可以分为“可套用一个模板的内容”在一个标签内,和不在一个标签内 举个栗子: 33 ...

    如何解决XSL转换XML的时候出现乱码的问题

    XSL转换中文出现乱码的解决方案
    • kydkong
    • kydkong
    • 2015年11月28日 22:25
    • 1163

    如何用XSL对XML的数据进行按节点排序?

    今天工作当中,遇到一个问题,XML的Schema文件中定义的complexType是一个Sequence,这就要求符合这个Schema定义的XML的数据节点,必须要按照Schema中Sequence定...

    根据xsl模板及xml数据文件生成pdf(文字内容复制不乱码)

    使用FOP技术,配合xsl模板及XML数据生成PDF报表和线上打印业务

    利用XSL将DataSet数据转换为Excel文档

    最近在一个ASP.NET项目的开发中有一个模块需要采用OWC控件呈现Excel样式的表格内容,表格内容比较复杂,包括锁定表头、公式、小计、合计、排序等。 以前采用客户端操作OWC实例一个单元格一个单...
    • bettyly
    • bettyly
    • 2013年05月30日 21:16
    • 1040
    内容举报
    返回顶部
    收藏助手
    不良信息举报
    您举报文章:xsl中循环取数据的问题
    举报原因:
    原因补充:

    (最多只允许输入30个字)