Subject: RE: [xsl] Match document node of source document only? From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 22 May 2008 14:43:45 +0100 |
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.mark@xxxxxxxxx] > Sent: 22 May 2008 14:39 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > 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-
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Match document node of source, Mark Lundquist | Thread | [xsl] The XForms/XPath paradox, Justin Johansson |
[xsl] Match document node of source, Mark Lundquist | Date | Re: [xsl] Profiling templates, Tony Graham |
Month |