At 2004-01-27 11:50 -0700, Randolph Kahle wrote:
As I understand it, document() returns the root node of a tree and if I
use the "/" path while processing a tree, I do *not* get the "root" above
all document()-retrieved trees.
Correct ... there is no such "root above all retrieved trees" ... they are
standalone (and relatively unordered).
What I get is the root of that specific XML file's tree.
Right.
My question is: How do I construct a path that will search all trees
returned by the document() function?
document() returns the union of root nodes from all of the files opened by
the string values of the *set* of nodes passed as an argument.
So, if I had:
<files>
<file url="a.xml"/>
<file url="b.xml"/>
<file url="c.xml"/>
</files>
... and I did:
document( /files/file/@url )
... I would get the union set of three root nodes, so if I wanted to search
all three XML documents for all <info> elements I would use:
document( /files/file/@url )//info
So, the trick is to put the "multiplicity" into the argument to the
document function and deal with the multiplicity that is returned.
I hope this helps.
......................... Ken
p.s. don't worry about repeated calls to document() ... the processor
typically caches the entire tree and just continues to return the
already-retrieved root node. So, you could have:
<xsl:variable name="allfiles" select="document( /files/file/@url )"/>
...
<xsl:for-each select="$allfiles//info">
...
--
Public courses: sign up for one or both soon to reserve your seat!
Each week: Monday-Wednesday: XSLT/XPath; Thursday-Friday: XSL-FO
Washington, DC: 2004-03-15 San Francisco, CA: 2004-03-22
Hong Kong, China: 2004-05-17 Bremen, Germany: 2004-05-24
World-wide on-site corporate, government & user group XML training
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list