Subject: RE: Dynamic dispatch of functions/templates (was matching text() )
From: "David Lee" <dlee@xxxxxxxxxxx>
Date: Thu, 23 Dec 2010 12:28:09 -0500
|
I think I shall have a hard time explaining the use case without writing
stretching the patience of this list.
Your idea is interesting.
<xsl:variable name="temp">
<xsl:for-each select="text()"><xsl:value-of select="."/></xsl:for-each>
</xsl:variable>
<xsl:apply-templates select="$temp/text()"/>
Question: will this preserve the context in $temp ?
That is, suppose I'm in a template like
<xsl:template match="/FOO/BAR">
Then execute the above.
Would it match only
<xsl:template match="/FOO/BAR/text()">
And match it only once ?
?
(say and not
<xsl:template match="/SPAM/BAR/text()">
)
?
Also it *looks like* $temp above becomes a sequence, not a single text node
???
(Or am I reading too much XQuery into this ?)
Thanks for your patience.
----------------------------------------
David A. Lee
dlee@xxxxxxxxxxx
http://www.xmlsh.org
-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
Sent: Thursday, December 23, 2010 11:46 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Dynamic dispatch of functions/templates (was matching
text() )
On 23/12/2010 14:37, David Lee wrote:
> Still thinking how to change
>
> <xsl:apply-templates select="text()"/>
> .
>
> <xsl:template match="some_xpath/text()">
> ..
>
>
> Into something where the text is concatenated in the face of PI's or
> comments.
>
It sounds as if there's a back-story to this one which perhaps I should
have been following, but on the face of it, you can simply do
<xsl:variable name="temp">
<xsl:for-each select="text()"><xsl:value-of select="."/></xsl:for-each>
</xsl:variable>
<xsl:apply-templates select="$temp/text()"/>
perhaps with a mode.
I don't really follow the logic of how your stated requirement leads to
a need for dynamic despatch.
Michael Kay
Saxonica
|