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>

 本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/60416,如需转载请自行联系原作者 
相关文章
|
2月前
|
XML 数据格式
Extensible Stylesheet Language (XSL)的概念介绍和具体例子分享
Extensible Stylesheet Language (XSL)的概念介绍和具体例子分享
22 0
|
9月前
|
XML 移动开发 开发框架
基础:html5、html、htm、xhtml、dhtml、shtml、shtm、xml、xsl、xslt
基础:html5、html、htm、xhtml、dhtml、shtml、shtm、xml、xsl、xslt
46 0
|
11月前
|
XML 存储 JavaScript
JavaScript系列--XML
JavaScript系列--XML
61 0
|
XML 存储 前端开发
JavaScript系列--XML(一)
JavaScript系列--XML(一)
77 0
|
XML 存储 JavaScript
JavaScript系列--XML(二)
JavaScript系列--XML(二)
114 0
|
XML JavaScript 前端开发
JavaScript系列--XML(三)
JavaScript系列--XML(三)
122 0
|
XML PHP 数据格式
xinclude和xslt的利用
参考文献:http://skysec.top/2018/08/18/%E6%B5%85%E6%9E%90xml%E4%B9%8Bxinclude-xslt/ 环境 libxml:2.9.4 win10 Xinclude 用于合并XML文档的通用机制,通过在“主”文档中编写包含标记来自动包含其他文档或其他部分。
1183 0