You seem to be looking for functions:
<xsl:function name="f:depth" as="xs:integer">
<xsl:param name="node" as="node()"/>
<xsl:sequence select="count($node/ancestor::*)"/>
</xsl:function>
Michael Kay
Saxonica
On 03/03/2011 11:56, Jacobus Reyneke wrote:
Good day,
Is there some way to re-use just part of an XPath expression. Here I
made an attempt by assigning it to a variable, but the benefit of
doing it this way is very limited:
<xsl:template match="cv:*/gl:title">
<xsl:variable name="ancestors" select="count(ancestor::*)"/>
<fo:block>
<fo:inline font-size="{($title-font-size)-2*$ancestors}pt">
<xsl:apply-templates></xsl:apply-templates>
</fo:inline>
</fo:block>
</xsl:template>
In this example I resize the section titles in FO depending on the
depth of the title. Is there some way I can put the
"count(ancestor::*)" expression in one place and so re-use it in
different templates by 'calling' it? I cannot just make the expression
'global' because new values cannot be assigned to it.
This is just a question in an attempt to understand the mechanism of
re-using bits of XPath in an attempt to keep templates maintainable.
Kind regards,
Jacobus
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--