Subject: Re: [xsl] How to access the root node from within a subtemplate/recursion? From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 1 Dec 2004 00:44:24 GMT |
> Obviously xslt only knows the local tree at the current recursion level. > Is there a way to access the root node of the whole outer tree? XSLT has full access to teh entire tree (trees in fact) at all times. > <xsl:template match="//myelem[@name = 'peter']"> you don't want the // there it isn't doing anything useful the stylesheet would work the same way with <xsl:template match="myelem[@name = 'peter']"> <!-- now I want to jump to the node <myelem name="karl"> with the subnode 'tony' but this doesn't work because this node is outside the context/scope --> <xsl:with-param name="nametofind" select="//myelem[@name = $nametofind]" /> //myelem will search the whole document for an element of that name, so unless you have multiple documents (from document() or xx:node-set() functions) this wil find the element. If you do have multiple documeents and want to get back to your original one, put <xsl:variable name="originaldoc" select="/"/> at teh top level of your stylesheet (outside any template) then you can go <xsl:with-param name="nametofind" select="$originaldoc//myelem[@name = $nametofind]" /> Note that // can be very expensive/slow and you probably would get great efficiency gains by using keys. (butget it working before getting it optimised) > How do I access from a given subtree the outer whole tree resp. other > nodes? if it really is a subtree then just using / will work, if it's a different tree, use a variable holding the original root node, as above. David ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] How to access the root node f, Matt Adams | Thread | RE: [xsl] How to access the root no, cknell |
RE: [xsl] How to access the root no, cknell | Date | [no subject], Unknown |
Month |