XSL学习(3)

清单 1. 表示足球锦标赛结果的 XML 文档
None.gif < results  group ="A" >
None.gif
< match >
None.gif 
< date > 10-Jun-1998 </ date >
None.gif 
< team  score ="2" > Brazil </ team >
None.gif 
< team  score ="1" > Scotland </ team >
None.gif
</ match >
None.gif
< match >
None.gif 
< date > 10-Jun-1998 </ date >
None.gif 
< team  score ="2" > Morocco </ team >
None.gif 
< team  score ="2" > Norway </ team >
None.gif
</ match >
None.gif
< match >
None.gif 
< date > 16-Jun-1998 </ date >
None.gif 
< team  score ="1" > Scotland </ team >
None.gif 
< team  score ="1" > Norway </ team >
None.gif
</ match >
None.gif
< match >
None.gif 
< date > 16-Jun-1998 </ date >
None.gif 
< team  score ="3" > Brazil </ team >
None.gif 
< team  score ="0" > Morocco </ team >
None.gif
</ match >
None.gif
< match >
None.gif 
< date > 23-Jun-1998 </ date >
None.gif 
< team  score ="1" > Brazil </ team >
None.gif 
< team  score ="2" > Norway </ team >
None.gif
</ match >
None.gif
< match >
None.gif 
< date > 23-Jun-1998 </ date >
None.gif 
< team  score ="0" > Scotland </ team >
None.gif 
< team  score ="3" > Morocco </ team >
None.gif
</ match >
None.gif
</ results >
None.gif

清单 2. 足球赛结果的基本样式表
None.gif < xsl:transform
None.gif 
xmlns:xsl ="http://www.w3.org/1999/XSL/Transform"  version ="1.0" >
None.gif
< xsl:template  match ="results" >
None.gif 
< html >
None.gif 
< head >< title >
None.gif Results of Group 
< xsl:value-of  select ="@group" >
None.gif 
</ title ></ head >
None.gif 
< body >< h1 >
None.gif Results of Group 
< xsl:value-of  select ="@group" >
None.gif 
</ h1 >
None.gif 
< xsl:apply-templates >
None.gif 
</ body ></ html >
None.gif
</ xsl:template >
None.gif
< xsl:template  match ="match" >
None.gif 
< h2 >
None.gif 
< xsl:value-of  select ="team[1]" >  versus  < xsl:value-of  select ="team[2]" >
None.gif 
</ h2 >
None.gif 
< p > Played on  < xsl:value-of  select ="date" ></ p >
None.gif 
< p > Result:
None.gif 
< xsl:value-of  select ="team[1] " >
None.gif 
< xsl:value-of  select ="team[1]/@score" > ,
None.gif 
< xsl:value-of  select ="team[2] " >
None.gif 
< xsl:value-of  select ="team[2]/@score" >
None.gif 
</ p >
None.gif
</ xsl:template >
None.gif
</ xsl:transform >
None.gif

清单3. 计算球队名次表的样式表
None.gif < xsl:transform
None.gif
xmlns:xsl ="http://www.w3.org/1999/XSL/Transform"
None.gifversion
="1.0" >
None.gif
< xsl:variable  name ="teams"  select ="//team[not(.=preceding::team)]" >
None.gif
< xsl:variable  name ="matches"  select ="//match" >
None.gif
< xsl:template  match ="results" >
None.gif
< html >< body >
None.gif 
< h1 > Results of Group  < xsl:value-of  select ="@group" ></ h1 >
None.gif 
< table  cellpadding ="5" >
None.gif 
< tr >
None.gif 
< td > Team </ td >
None.gif 
< td > Played </ td >
None.gif 
< td > Won </ td >
None.gif 
< td > Drawn </ td >
None.gif 
< td > Lost </ td >
None.gif 
< td > For </ td >
None.gif 
< td > Against </ td >
None.gif 
</ tr >
None.gif 
< xsl:for-each  select ="$teams" >
None.gif 
< xsl:variable  name ="this"  select ="." >
None.gif 
< xsl:variable  name ="played"  select ="count($matches[team=$this])" >
None.gif 
< xsl:variable  name ="won"
None.gif select
="count($matches[team[.=$this]/@score > team[.!=$this]/@score])" >
None.gif 
< xsl:variable  name ="lost"
None.gif select
="count($matches[team[.=$this]/@score < team[.!=$this]/@score])" >
None.gif 
< xsl:variable  name ="drawn"
None.gif select
="count($matches[team[.=$this]/@score = team[.!=$this]/@score])" >
None.gif 
< xsl:variable  name ="for"
None.gif select
="sum($matches/team[.=current()]/@score)" >
None.gif 
< xsl:variable  name ="against"
None.gif select
="sum($matches[team=current()]/team/@score) - $for" >
None.gif 
< tr >
None.gif 
< td >< xsl:value-of  select ="." ></ td >
None.gif 
< td >< xsl:value-of  select ="$played" ></ td >
None.gif 
< td >< xsl:value-of  select ="$won" ></ td >
None.gif 
< td >< xsl:value-of  select ="$drawn" ></ td >
None.gif 
< td >< xsl:value-of  select ="$lost" ></ td >
None.gif 
< td >< xsl:value-of  select ="$for" ></ td >
None.gif 
< td >< xsl:value-of  select ="$against" ></ td >
None.gif 
</ tr >
None.gif 
</ xsl:for-each >
None.gif 
</ table >
None.gif
</ body ></ html >
None.gif
</ xsl:template >
None.gif
</ xsl:transform >
None.gif

转载于:https://www.cnblogs.com/mjgforever/archive/2007/08/17/860047.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值