时间: 2021-07-31 作者:daque
3.1 xsl:template和xsl:apply-templates
沙盘(template)是xslt中最要害的观念之一。xslt文献即是由一个一个的沙盘构成,任何一个xslt文献起码包括一个沙盘。沙盘的观念就象是搭积木;你即使是步调员,也不妨将沙盘看作一个本领,一个类,大概一个模块。它们不妨被组装拉拢,也不妨独立成块,各别的沙盘遏制各别的输入方法。沙盘(template)由两局部构成:配合形式(match pattern)和实行。大略的讲形式设置xml源文书档案中哪一个节点将被沙盘处置,实行则设置输入的是什么方法。两局部对应的语法为xsl:template和xsl:apply-templates。
xsl:template的语法是:
<xsl:templatematch = patternname = qnamepriority = numbermode = qname><!-- 实行实质 --></xsl:template>
xsl:template的效率是设置一个新沙盘。属性中name,priority,和mode用来辨别配合同一节点的各别沙盘。它们不是常用的属性。match属性则遏制沙盘的配合形式(pattern),配合形式是用来定位xml源文书档案中哪一个节点被沙盘处置。一个沙盘配合一个节点。咱们用一个例子来扶助领会:假如咱们要处置一个包括章节和段落文书档案。咱们用para元素设置段落,用chapter元素设置章节。咱们来看看match属性大概的值。底下的语句写法证明沙盘配合一切的para元素
<xsl:template match="para"></xsl:template>
底下的语句写法证明沙盘配合一切的para元素和一切的chapter元素:
<xsl:template match="(chapter|para)"></xsl:template>
底下的语句写法证明沙盘配合一切的父节点为chapter元素的para元素:
<xsl:template match="chapter//para"></xsl:template>
底下的语句写法证明沙盘配合根节点:
<xsl:template match="/"></xsl:template>
咱们再来看apply-templates语法:
<xsl:apply-templatesselect = node set-expressionmode = qname></xsl:apply-templates>
xsl:apply-templates用来实行那一个节点被沙盘简直处置。你不妨将它领会为步调中挪用子因变量。select属性用来设置真实的节点称呼。xsl:apply-templates老是包括在xsl:template元素中,象如许:
<xsl:template match="/"><xsl:apply-templates select="para"/></xsl:template>
这段代码证明摸板配合所有文书档案(根节点),简直实行时处置根节点下一切para元素。
<xsl:template match="para"><p><xsl:apply-templates/></p></xsl:template>
而这一段代码则表白摸板配合para节点,一切para下的子元素都将被处置。