xsl-list
[Top] [All Lists]

RE: [xsl] Match document node of source document only?

2008-05-22 06:44:12
Either:

(a) Use modes

(b) apply-templates to the outermost element rather than to the document
node

(c) use a more specific pattern for the document node:
match="document-node(element(whatever))" 

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Mark Lundquist [mailto:lundquist(_dot_)mark(_at_)gmail(_dot_)com] 
Sent: 22 May 2008 14:39
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Match document node of source document only?

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



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