Subject: Re: [xsl] Reusing and XPath expression From: Michael Kay <mike@xxxxxxxxxxxx> Date: Thu, 03 Mar 2011 12:06:40 +0000 |
<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
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Reusing and XPath express, Martin Honnen | Thread | Re: [xsl] Reusing and XPath express, Jacobus Reyneke |
Re: [xsl] Reusing and XPath express, Martin Honnen | Date | Re: [xsl] Problem accumulating valu, Patricia Santana Cru |
Month |