XSL学习笔记3 XSLT的模板规则<xsl:value-of>和<xsl:for-each>

 

XSL学习笔记3 XSLT的模板规则<xsl:value-of>和<xsl:for-each>
 
1、<xsl:value-of>元素
  
<xsl:value-of>元素是选择当前节点的值,用于在结果树中创建一个文本节点。例如<xsl:value-of select="Name" />就是选择Name节点的值。

select属性是必须的,用于指定要计算的表达式,表达式计算的结果将被转换为一个字符串值。如果字符串为空,那么文本节点将不会被创建。
 
注意,每个xsl文件都需要导入xsl的命名空间, [url]http://www.w3.org/TR/WD-xsl[/url],例如在xml头声明之后加入:<p xmlns:xsl=" [url]http://www.w3.org/TR/WD-xsl[/url]">
 
2、<xsl:for-each>元素
 
  <xsl:for-each>元素逐个(select)选择某条件,应用条件。select属性是必须的,用于指定一个表达式,该表达式计算结果必须是一个节点集。<xsl:for-each>元素的内容是一个模板,对于每一个被选择的节点,实例化该模板。
 
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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值