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

对某一个元素做多次处理,那么选择<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-mode属性用法的更多相关文章

  1. JS中Array数组的三大属性用法

    原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了 ...

  2. js原生之scrollTop、offsetHeight和offsetTop等属性用法详解

    scrollTop.offsetHeight和offsetTop等属性用法详解:标题中的几个相关相关属性在网页中有这大量的应用,尤其是在运动框架中,但是由于有些属性相互之间的概念比较混杂或者浏览器兼容 ...

  3. Android - include属性用法

    include属性用法 本文地址: http://blog.csdn.net/caroline_wendy Android的layout中, 能够使用include属性样式, 这样能够把不同的layo ...

  4. css文本属性用法总结

    稍稍总结了下css文本的一些属性用法,自己忘记的时候也可以用来查查,不用去查网站那么麻烦. 下面是部分总结,也希望对其他人有用 文本修饰 (1)text-decoration:  文本修饰(横线) 4 ...

  5. scrollTop、offsetHeight和offsetTop等属性用法详解--转转转

    scrollTop.offsetHeight和offsetTop等属性用法详解: 标题中的几个相关相关属性在网页中有这大量的应用,尤其是在运动框架中,但是由于有些属性相互之间的概念比较混杂或者浏览器兼 ...

  6. 跨平台移动开发 Xuijs超轻量级的框架Style CSS属性用法

    PhoneGap里面推荐使用的超轻量级的框架 Style CSS属性用法 设置css属性:setstyle 通过ID设置css属性 x$('#top1').setStyle('color', '#DB ...

  7. WPF Visibility属性用法

    WPF Visibility属性用法 Visible 元素在窗体中正常显示 Collaspsed 元素不显示,也不占用空间 Hidden 元素不显示,但是任然为它保留空间

  8. godot新手教程1[button信号使用]<godot节点信号对照及节点属性用法>

    button(按钮)节点信号对照: 1:pressed()      #按钮点击信号 #绑定按钮点击后触发信号 Pressed使用案例: func _on_”节点路径”_Button_pressed( ...

  9. HTML5 <a>标签的ping属性用法

    随着移动互联网用户井喷式的增长,web前端开发中的HTML5在近几年备受瞩目,越来越多的人从事html5开发相关工作.今天小编也来凑个热闹,和大家一起来谈谈HTML5中<a>标签的ping ...

随机推荐

  1. iOS小知识:计算字符串长度(如果有表情,表情的长度为1)

    在做项目的时候,textField能够输入表情,但是iOS的表情是占两个字符的,再计算字符串长度的时候就和想象的不一样了,所以用了次方法会将表情的长度转成1,最后得到的字符串的长度就是能看到的实际的长 ...

  2. centos 7配置网络 更新yum源

    cd /etc/sysconfig/network-script/ 找到对应的ifcfg-entxxxx文件,然后添加网关,修改dhcp为static,静态ip,添加IPADDR ip地址.onboo ...

  3. session、cookie浅见

    万事开头难,刚开始不一定能写好博文,不,应该是一定写的不好,但我定会用心. 以前只知道session是存在服务器,cookie是存在客户端,至于它们工作的原理就不了解了.为了巩固自己记忆,小小的总结了 ...

  4. java中 IndexOf()、lastIndexOf()、substring()的用法

    public int indexof(String str)返回字符串中出现str的第一个位置 public int indexof(String str,int fromIndex)返回字符串中从f ...

  5. html_随笔

    1 <h1>  </h> 标题 2 <p> </p> 段落 3 <br /> 换行 4 <!-- ...--> 注释 5 < ...

  6. WPF 中的image控件的Source如何赋值

    Image image=new Image();image.Source = new BitmapImage(new Uri(@"daw\adw.jpg",UriKind.Rela ...

  7. apache 虚拟机配置

    <VirtualHost *:80> DocumentRoot /www/htdocs/caipiao ServerName www.aaa.com ServerAlias aaa.com ...

  8. eclipse逐步调试

    Eclipse 的单步调试 1.设置断点在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上.2.调试(1)点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界面 ...

  9. iOS getter setter

    getter setter 给成员变量起名字用的 setter方法 设置成员变量值 1. setter 方法一定是对象方法 不可能是类方法 2.一定没有返回值 3. 以set开头,并且set后面跟上需 ...

  10. Redis安装及实现session共享

    一.Redis介绍 1.redis是key-value的存储系统,属于非关系型数据库 2.特点:支持数据持久化,可以让数据在内存中保存到磁盘里(memcached:数据存在内存里,如果服务重启,数据会 ...