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中显式效果:
XSL学习笔记5 mode属性
 
看到了吧,匹配了两次模板。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/60517,如需转载请自行联系原作者
上一篇:排序算法(四):归并排序


下一篇:Nginx模块之Nginx-Ts-Module学习笔记(一)抢险体验