xsl-list
[Top] [All Lists]

[xsl] Match document node of source document only?

2008-05-22 06:39:26
Hi,

I've got a template where I have to do this trick (in XSLT 2.0):

        <xsl:variable name="foo">
                <whatever>
                        blah blah blah...
                </whatever>
        </xsl:variable>
        <xsl:apply-templates select="$foo"/>

This is in order to apply some transform (e.g., from an imported stylesheet) to sequences that originate in the stylesheet, not in the source document. My problem is that I also have this template:

        <xsl:template match="/">
                ...

which is meant to transform the document node of the source document, but the result tree fragment defined by variable foo also has a document node, so now when I <xsl:apply-templates select="$foo"/>, this template also matches that result tree fragment document node and transforms it. Bleah!!! How do I write a template that matches the document node of the source document only?

I could do

        <xsl:variable name="root" select="/"/>

        <xsl:template match="/[. = $root]">

but that's really hacky and seems like it should not be necessary. Any ideas?

cheers,
—ml—


--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>