XSL学习笔记3 XSLT的模板规则
 
1、元素
  
元素是选择当前节点的值,用于在结果树中创建一个文本节点。例如就是选择Name节点的值。

select属性是必须的,用于指定要计算的表达式,表达式计算的结果将被转换为一个字符串值。如果字符串为空,那么文本节点将不会被创建。
 
注意,每个xsl文件都需要导入xsl的命名空间, [url]http://www.w3.org/TR/WD-xsl[/url],例如在xml头声明之后加入:

 
2、元素
 
  元素逐个(select)选择某条件,应用条件。select属性是必须的,用于指定一个表达式,该表达式计算结果必须是一个节点集。元素的内容是一个模板,对于每一个被选择的节点,实例化该模板。
 
for-each还支持排序,order-by语句,它的语法是以分号(;)分隔、作为排序标准的列表。在列表元素前添加加号(+)表示按此标记的内容以升序排序,添加减号(-)表示逆序排序。作为一种简化的表示就是,排序标准列表就是由select规定的标记的子标记的序列,每个标记之间以(;)分隔。
 
employee.xml
xml version ="1.0" encoding ="UTF-8" ?>
xml-stylesheet type ="text/xsl" href ="src/employees44.xsl" ?>
< employees >

     < employee sn ="E-200402100001" >
         < name >zhangsan name >
         < age >25 age >
         < 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 >
         < monthly_pay mode ="credit_card" >
            3500.00
         monthly_pay >
     employee >

employees >
 
employee.xsl
xml version ="1.0" ?>
< xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >

     < xsl:template match ="/" >
         < html >
             < head > head >
             < xsl:apply-templates />
         html >
     xsl:template >
    
     < xsl:template match ="employees" >
         < body >
             < table border ="1" >
                 < xsl:for-each select ="employee" >
                     < 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:for-each >
             table >
         body >
     xsl:template >
    
xsl:stylesheet >
 
通过xslt处理器转换为html结果为:
< html >
< head >
     < META http-equiv ="Content-Type" content ="text/html; charset=UTF-8" >
head>

< body >
< 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>
body>
html>