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>  

XSL中利用xsl:for-each时给每一项添加序号

经常用for-each来循环读取XML中的某个节点集,但常常需要加上序号这样来做:         当然,如果你不满意,想在数字后面加上"."可以这样:     甚至,你可以用用图片表示1/2/3等:...
  • lincnl
  • lincnl
  • 2007年08月28日 14:52
  • 1103

[XSL技巧]获得上一层节点(父节点)的位置

 通常,我们可以用position()函数来返回当前节点在同层节点中的位置,但是当因为某些需求的情况下,假如要获得上层节点(父节点)的位置,position()就施展不开了,此时则需要一点技巧来解决这...
  • cds27
  • cds27
  • 2006年08月13日 14:58
  • 4406

XSL遍历节点内容

xml.xml: a  aa   aaa    aa  a  aa xml.xsl:http://www.w3.org/1999/XSL/Transform">                    ...
  • cds27
  • cds27
  • 2005年10月24日 09:36
  • 4280

XSL中循环的实现

      5                           
  • cds27
  • cds27
  • 2005年10月23日 14:53
  • 5645

XSL for-each 总结

2013-04-28 2013-04-30 USD 100000 2004-04-30 ...
  • lixuekun820
  • lixuekun820
  • 2012年12月25日 15:16
  • 1531

Xsl截取字符串

substring-before(substring-after($Url,'/'),'/')substring($Url,2,5)Reference:http://topic.csdn.net/t/...
  • jenny0810
  • jenny0810
  • 2010年12月02日 11:22
  • 1150

XSL控制循环次数

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

在 XSLT 中用递归实现循环

原文地址:https://www.ibm.com/developerworks/cn/xml/x-tiploop.html 扩展 XSLT 能力的技术 XSLT 是一种函数式编程语...
  • u010523770
  • u010523770
  • 2017年05月04日 22:41
  • 411

从XSL参数中取值

出处:https://msdn.microsoft.com/zh-cn/library/ms950787.aspx 从 XSL 参数中取值 发布日期 : 4/1/2004 | 更新日期 : 4...
  • yintianqin
  • yintianqin
  • 2017年02月09日 10:25
  • 713

XSLT2.0 xsl:for-each-group用法详解.

for-each-group是在XSLT2.0中增加进来的一个标签.其主要作用是对结果进行分组. 由此增加了current-group()和current-grouping-key()两个内置函数....
  • rickylin86
  • rickylin86
  • 2016年09月27日 23:11
  • 1429
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xsl中循环取数据的问题
举报原因:
原因补充:

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