Subject: Re: [xsl] rephrased: passing parameters to generic templates From: "andrew welch" <andrew.j.welch@xxxxxxxxx> Date: Wed, 12 Apr 2006 17:41:48 +0100 |
On 4/12/06, Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> wrote: > At 06:37 AM 4/12/2006, drkm wrote: > >andrew welch wrote: > > > > > <xsl:template match="a"> > > > <a href="{ancestor::para/docBase}">..... > > > > I'm not sure, but I think the OP needs "ancestor::para[1]/...", > >doesn't it? > > Not if there's only one (which seems likely). Even if there's more > than one, when ancestor::para/docBase is turned into a string, the > value of the first such element in document order is taken. > > In XPath 2.0 you could get an error for relying on this, however, > since in 2.0 a sequence of more than one node can't be converted into > a string. There, you might be better off forcing it to be the first, > as in (ancestor::para/docBase)[1]. In an AVT the values get concatenated using a space separator... but I'm guessing you meant as arguments to functions... I disagree with your second point though, using (..)[1] should be avoided as it will hide the fact that you selected multiple nodes when you only wanted one - this is the real strength of 2.0 over 1.0 - in 1.0 you would only trap this by examining the output, in 2.0 you get an error.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] rephrased: passing parame, Michael Kay | Thread | Re: [xsl] rephrased: passing parame, Wendell Piez |
RE: [xsl] rephrased: passing parame, Michael Kay | Date | Re: [xsl] xslt 1.0 namespace on out, Manfred Staudinger |
Month |