Re: [xsl] Scope of document() in XSL

Subject: Re: [xsl] Scope of document() in XSL
From: Victor <xsl-list@xxxxxxxxx>
Date: Wed, 01 Jun 2005 18:30:25 +0200
David Carlisle wrote:

The templates which will be applied to elements of doc2.xml refer at one point to an element of doc1.xml by using "//element".


If the current node is in doc2 then //element selects all the element nodes in doc2. If you want doc1 then you want document('doc1.xml')//element

document() itself doesn't have scope, it just returns a set of document
nodes (one in this case) what matters is the definition of a leading /
in XPath which doesn't refer to the main input document but rather to
the root node ancestor of the current node.


The problem is that actually there are multiple "doc1.xml" files and I have no chance in passing the actual file name to the template in my environment.
I am changing the template to pass the needed element via a parameter to the called template so this should work, but this works only because the structure of doc2.xml is not very deep.
It would be fine to have a way to distinguish between the "actual" document and the "root" document without need for the file name.


Victor

Current Thread