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