XSL学习笔记5 mode属性

XSL学习笔记5 mode属性
 
对某一个元素做多次处理,那么选择<xsl:apply-template元素处理。
如果要每次对同一个元素处理输出不同的结果,那么就需要使用mode属性。
<xsl:template>和<xsl:apply-templates>都有一个mode属性,只有在这两个元素里面同时设定了mode属性,并且属性值相同,那么模板规则才会匹配。
 
例如:
employees.xml
<? xml version ="1.0" encoding ="GB2312" ?>
<? xml-stylesheet type ="text/xsl" href ="employees.xsl" ?>

<!-- 这是公司雇员的信息-->
< employees >

     < employee sn ="E-200402100001" >
         < name >zhangsan </ name >
         < age >25 </ age >
        <!-- 月薪小于等于2000元的雇员工资,以现金方式发放-->
         < monthly_pay mode ="cash" >
            1200.00
         </ monthly_pay >
     </ employee >
    
     < employee sn ="E-200402100006" >
         < name >lisi </ name >
         < age >28 </ age >
         < monthly_pay mode ="cash" >
            1600.00
         </ monthly_pay >
     </ employee >
    
     < employee sn ="E-200503220001" >
         < name >wangwu </ name >
         < age >30 </ age >
        <!-- 月薪高于2000元的雇员工资,以信用卡转帐的方式发放-->
         < monthly_pay mode ="credit_card" >
            3500.00
         </ monthly_pay >
     </ employee >
    
</ employees >
 
employees.xsl
<? xml version ="1.0" ?>
< xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
    
     < xsl:template match ="/" >
         < table border ="1" >
             < xsl:apply-templates select ="employees/employee" mode ="table" />
         </ table >
         < xsl:apply-templates select ="employees/employee" mode ="list" />
     </ xsl:template >
    
     < xsl:template match ="employee" mode ="table" >
         < tr >
             < td > < xsl:value-of select ="name" /> </ td >
             < td > < xsl:value-of select ="age" /> </ td >
             < td > < xsl:value-of select ="monthly_pay" /> </ td >
         </ tr >
     </ xsl:template >
    
     < xsl:template match ="employee" mode ="list" >
         < ul >
             < li > < xsl:value-of select ="name" /> </ li >
             < li > < xsl:value-of select ="age" /> </ li >
             < li > < xsl:value-of select ="monthly_pay" /> </ li >
         </ ul >
     </ xsl:template >
    
</ xsl:stylesheet >
 
输出的HTML文件:
< table border ="1" >
     < tr >
         < td >zhangsan </td>
         < td >25 </td>
         < td >1200.00 </td>
     </tr>
     < tr >
         < td >lisi </td>
         < td >28 </td>
         < td >1600.00 </td>
     </tr>
     < tr >
         < td >wangwu </td>
         < td >30 </td>
         < td >3500.00 </td>
     </tr>
</table>
< ul >
     < li >zhangsan </li>
     < li >25 </li>
     < li >1200.00 </li>
</ul>
< ul >
     < li >lisi </li>
     < li >28 </li>
     < li >1600.00 </li>
</ul>
< ul >
     < li >wangwu </li>
     < li >30 </li>
     < li >3500.00 </li>
</ul>
 
IE中显式效果:
 
看到了吧,匹配了两次模板。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值