xsl 语法简介:
1.寻找(定位)数据:locating date
在XML文档中使用路径表达式来定位数据,例如:下面的实例中返回所有的CD元素
//CATALOG/CD
双斜线(//)指示满足查询标准的XML文档中的所有元素
单斜线(/)用于区分子节点
例如:中
其中,//G_LINES[LINE_TYPE='LINE']的方括号为进一步的限制查询,
可以使用@symbol来确定属性,例如//CD[@cattype="Rock"]
同样,可以使用布尔表达式竖线(|)来连接多个复杂的查询 例如
//CD[@cattype="Folk"]|//CD[@cattype="Rock"]
2.上下文联系与父关系
为了选择当前元素及其父元素,xsl语言将dot(点.)符号来导航目录,使用单个点(.)表示当前节点,使用(..)来返回当前节点的父层
例如,获取所有节点的父层的用法为: ../*
3.使用上下文命令 context commands
--作用:1.定义if条件表达式,2.创建一个新的头及其页码在循环语句中(for-each)3.定义变量
语法:
1)在xml publisher中使用的简单语法为:@context,例如:<?for-each@section:INVOICE?>用于每次occurrence时,组INVOICE产生一个新的段 @section后似乎不能跟参数
*2)对于xsl语言而言: 需要增加xdofo:ctx="context"属性来特别指出插入指令
context 包括:
section -- 等同于for-each@section例如
column --用于显示/隐藏表的column
cell --
block --主要使用于if/for-each中
inline --用于变量
* incontext--The statement is inserted immediately after the surrounding statement. This is the default for <?sort ?> statements that need to follow the surrounding for-each as
the first element.
* inblock --This is typically not useful for control statements (such as if and for-each) but is useful for statements that generate text, such as call-template.
inlines --
begin --
end --
4.各类语法
定义模版规则:XSL Syntax:
拷贝当前节点:XSL Syntax:
调用模版: XSL Syntax:
模版声明: XSL Syntax:
变量声明: XSL Syntax: Example:
倒入连接: XSL Syntax:
5.position() function returns a record counter while in the loop,可以把position当成一个指针,返回当前记录集的在具体某一行的行数,
6.如何定义参数:
--定义常数
--定义动态的变量
a.page
b.如果按固定行换页: 需要定义2个参数
在end-each前加上:
page
其中$start为每页起始行的position(),$lpp为每页固定行的行数,count($invLines)每个header对应的总行数,
c.在某处强制分页如新组新页,那么可以使用Word的分页符(CTRL+ENTER快捷键),但会导致最后出现空白页;
d.分组声明中加@section,如< ?for-each@section:G_PO_HEADER?>。
e.<?end for-each?>前加<?split-by-page-break: ?>。这个 翻译后,实际上是:
page
f. <?end for-each?>前加page,此法下RTF最后无空白页,但PDF有空白页。
g. <?end for-each?>前加page此法下RTF、PDF最后都有空白页。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25103190/viewspace-706836/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25103190/viewspace-706836/