XSL学习笔记3 XSLT的模板规则


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,如需转载请自行联系原作者 
上一篇:Vertica的这些事<二>—— vertica建表的一些规则


下一篇:《淘宝店铺经营管理一册通》一一1.1 宝贝标题优化