Subject: RE: [xsl] problem passing parameter to apply-templates From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 31 Aug 2005 09:44:24 +0100 |
I haven't studied your code in detail, but a common pitfall in this area is the situation where the element hierarchy is A/B/C: template A does xsl:apply-templates with parameters there is no template for B, so the built in template gets invoked the built in template for B invokes the template for C the template for C sees no parameters This is because (in XSLT 1.0) built-in templates do not pass their parameters on. With multiple documents, this problem often occurs because people do apply-templates on the root (document) node, but write a template rule to process the top-level element, so the built-in template for the root node loses the parameters. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Paula Estrella [mailto:paula_ile2003@xxxxxxxxxxxx] > Sent: 30 August 2005 23:41 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] problem passing parameter to apply-templates > > Hi all, I'm trying to pass a parameter to a template > by using apply-templates (as showed in the stylesheet > below) but I don't get the value of the parameter when > the template is applied, i.e I should print "blabla" > but instead I get nothing (a null value or empty > string?). > I also read somewhere that this might be a kind of bug > of the xslt processor; I'm using the Cocoon framework, > which uses xalan to process xslt (I guess v. 1.0) > > Although I found another (dirty) solution to get what > I want, I'd really like to know what's the error here > so I can learn from my mistakes ... > > Thanks in advance, > Paula > > <!-- short version of the stylesheets --> > <xsl:template match="page"> > <xsl:apply-templates select="title"/><br/> > <xsl:apply-templates > select="document('../xml/clasif2.xml')/clasif2"> > <xsl:with-param name="nodes" select="'blabla'"/> > </xsl:apply-templates> > </xsl:template> > > <xsl:template match="item"> > <xsl:param name="nodes"/> > > <xsl:value-of select="$nodes"/> > </xsl:template> > > <!-- xml file to which the above stylesheet is applied > --> > <page> > <title>some title</title> > <checked> > <xsp:attribute name="data"> > 102 > </xsp:attribute> > </checked> > </page> > > > > > > > > ___________________________________________________________ > 1GB gratis, Antivirus y Antispam > Correo Yahoo!, el mejor correo web del mundo > http://correo.yahoo.com.ar
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] problem passing parameter to, Paula Estrella | Thread | Re: [xsl] problem passing parameter, David Carlisle |
RE: [xsl] Nodes have the same level, Michael Kay | Date | RE: [xsl] Encoding problem, amita rathore |
Month |