Ho una chiamata ragionevolmente complesso da xsl: apply-templates:Come utilizzare la variabile XSL in xsl: apply-templates?
<xsl:apply-templates select="columnval[@id
and not(@id='_Name_')
and not(@id='Group')
and not(@id='_Count_')]"/>
L'espressione viene riutilizzato in altri posti come questo:
<xsl:apply-templates select="someothernode[@id
and not(@id='_Name_')
and not(@id='Group')
and not(@id='_Count_')]"/>
voglio generalizzare in qualche modo, così posso definire una volta e riutilizzalo altrove. Tuttavia, questo non sembra funzionare:
<xsl:variable name="x">@id and not(@id='_Name_') and not(@id='Group') and not(@id='_Count_')</xsl:variable>
<xsl:apply-templates select="columnval[$x]"/>
<xsl:apply-templates select="someothernode[$x]"/>
C'è un modo migliore/diverso di farlo? Tutto quello che voglio è riutilizzare l'espressione xpath in più chiamate a xsl: apply-templates (alcuni dei quali selezionano da diversi bambini).
Questo verrà utilizzato in un'applicazione client, quindi non è possibile utilizzare estensioni o passare a XSLT 2 sfortunatamente. :(
Grazie.
Buona domanda. Vedere la mia risposta per una descrizione di due possibili soluzioni (XSLT 1.0 e XSLT 2.0) e un suggerimento di una soluzione più potente utilizzando le funzioni di ordine superiore. –