XSLT学习(一)

cms系统要用到xslt+xml进行动态输出。现在学习一下xslt。

下面是一个转贴 http://dev.csdn.net/develop/article/59/59298.shtm

   

《Java与XSLT》读书笔记
一,所有的XSLT处理器必须包括四个内置的模版规则,它们的优先级要低于任何其他规则,所以只要编写一个新的模版规则来匹配相同的式样,就可以覆盖它们。理解内置规则的最好方法就是架设它们总是位于后台,如果没有找到其他匹配一个节点的规则,就应用这些内置规则。
二,XPath
Hello,World
       …
如果
为上下文节点,那么child::sbject将选择节点,而child::recipient将选择所有的节点集,child::*将选择
的所有子节点。星号(*)字符是一个通配符,表示主要节点类型的所有节点。每个轴都有一个主要节点类型,它始终为元素,除非该轴为属性或命名空间。如果为上下文节点,那么attribute::yy将选择yy属性,而attribute::*将选择元素的所有属性。
简单增加一个谓词过滤结果节点集,通常会减少结果集的大小。增加额外的谓词可进行额外的过滤。例如child::recipient[position()=1]最初将从前一个实例中选择所有的元素,然后向下过滤(减少)这个列表直到第一个: [email protected] 位置从1开始,而不是0。谓词可以包含任何XPath表达式,并且变得相当复杂。
如:
select="presidents/president[(term/@from > 1800) and (term/@from < 1850)]/name">
三,排序
排序可以应用于数据驱动,也可以应用于模板驱动方法。在任一种情况中均作为子元素添加到其他部分。通过增加几个连续的元素,就可以完成多字段排序。每种排序可以按照升序和降序进行,用于排序的数据类型可以是"数字"或"文本"。排序默认为升序。
 
四,属性值模板(AVT)
只要我们需要将一个属性值视为一个XPath表达式而不是静态文本,可能就需要使用一个AVT。但是对于标准XSLT元素,例如,就不必使用AVT语法。对于非XSLT元素,例如任意HTML标签,就需要AVT语法。
五,
六,
      
检查是否存在一个节点集而不是布尔值
blue
red
 
八,参数和变量
九,命名模板
 
十,递增变量
      
             
                    
                           
                           
                                  
                           
                    
             
      
      
      
      
             
      
             
             
                    
             
      
             
             
                    
             
      
十一,模板模式
 
十二,
只能作为顶层元素,即它与是兄弟关系
当包含两个冲突模板规则时,就会出现问题
必须出现在的任何其他顶层元素之前
 
十三,格式化文本和数值
string format-number(number, string, string?)
美元$#.##0.00 #和0是数字占位符并严格符合java.text.DecimalFromat指定的行为
0%输出一个百分数

 

你可能感兴趣的:(XSLT学习(一))