xsl-mode属性用法

本文出自 “熔 岩” 博客,出处http://lavasoft.blog.51cto.com/62575/60517app

 

 

对某一个元素作屡次处理,那么选择<xsl:apply-template元素处理。
若是要每次对同一个元素处理输出不一样的结果,那么就须要使用mode属性。
<xsl:template>和<xsl:apply-templates>都有一个mode属性,只有在这两个元素里面同时设定了mode属性,而且属性值相同,那么模板规则才会匹配。spa

 

例如:
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中显式效果:
相关文章
相关标签/搜索