深入XSL(3)---模板規(guī)則與模式(轉(zhuǎn))
發(fā)表時間:2023-08-14 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]深入XSL(3)---模板規(guī)則和模式翻譯:孫一中模板規(guī)則模板規(guī)則由xsl:template元素來規(guī)定."match"屬性標(biāo)識了規(guī)則應(yīng)用的源節(jié)點(集).xsl:template. ...
深入XSL(3)
---模板規(guī)則和模式
翻譯:孫一中
模板規(guī)則
模板規(guī)則由xsl:template元素來規(guī)定."match"屬性標(biāo)識了規(guī)則應(yīng)用的源節(jié)點(集).xsl:template. 例如:一個XML文檔可能包含下面的內(nèi)容:
This is an <emph>important</emph> point.
下列的模板規(guī)則匹配emph類型的元素,另有一個模板產(chǎn)生一fo:sequence 格式化對象,其font-weight屬性為粗體(bold).
<xsl:template match="emph">
<fo:sequence font-weight="bold">
<xsl:process-children/>
</fo:sequence>
</xsl:template>
xsl:process-children元素會遞歸處理”父”元素的“子”節(jié)點。
模式
一個模式是一個字符串,它用于匹配XML源文件中的一個元素.最通常的模式規(guī)定了匹配元素的類型名稱. 例如, emph模式匹配類型為emph的元素.更復(fù)雜的模式規(guī)定了相匹配元素的”祖先”節(jié)點的元素類型.例如, olist/item 模式匹配類型為item并且父親元素為olist類型的元素. “祖先”序列中的每個元素類型之后可以跟著一系列由逗號分隔的限定詞. 如, list[attribute(ordered)="yes")]/item[first-of-type()] 匹配item類型的元素,位于相同層次的元素的第一個,而且父節(jié)點類型為list,屬性名”ordered”的值為”yes”.
這部分詳細(xì)描述了模式的語法和語義.匹配元素的模式被認(rèn)為是匹配模式(match pattern). xsl:template 的模式就是匹配模式. 一個模式也可以用來選擇一系列的節(jié)點;這樣的模式被認(rèn)為是選擇模式(select pattern).在一個選擇模式中, 存在一個當(dāng)前節(jié)點來提供選擇的前后關(guān)系.該模式會選擇相匹配的一列源節(jié)點.這些節(jié)點是以文件來排序的. xsl:process, xsl:for-each 和xsl:value-of 中的模式都是選擇模式.
------------------------------------------------------------------------------