首页/技术开发/内容

深入XSL(3)---模板规则与模式(转)

技术开发2024-06-07 阅读()
深入XSL(3)
---模板规则和模式
翻译:孙一中

模板规则

模板规则由xsl:template元素来规定."match"属性标识了规则应用的源节点(集).xsl:template. 例如:一个XML文档可能包含下面的内容:


This is an <emph>important</emph> point.


下列的模板规则匹配emph类型的元素,另有一个模板产生一fo:sequence 格式化对象,其font-weight属性为粗体(bold).


<xsl:template match="emph">
<fo:sequence font-weight="bold">
<xsl:process-children/>
</fo:sequence>
</xsl:template>


xsl:process-children元素会递归处理”父”元素的“子”节点。

模式

一个模式是一个字符串,它用于匹配XML源文件中的一个元素.最通常的模式规定了匹配元素的类型名称. 例如, emph模式匹配类型为emph的元素.更复杂的模式规定了相匹配元素的”祖先”节点的元素类型.例如, olist/item 模式匹配类型为item并且父亲元素为olist类型的元素. “祖先”序列中的每个元素类型之后可以跟着一系列由逗号分隔的限定词. 如, list[attribute(ordered)="yes")]/item[first-of-type()] 匹配item类型的元素,位于相同层次的元素的第一个,而且父节点类型为list,属性名”ordered”的值为”yes”.

这部分详细描述了模式的语法和语义.匹配元素的模式被认为是匹配模式(match pattern). xsl:template 的模式就是匹配模式. 一个模式也可以用来选择一系列的节点;这样的模式被认为是选择模式(select pattern).在一个选择模式中, 存在一个当前节点来提供选择的前后关系.该模式会选择相匹配的一列源节点.这些节点是以文件来排序的. xsl:process, xsl:for-each 和xsl:value-of 中的模式都是选择模式.



------------------------------------------------------------------------------

……

相关阅读