Hi Mike - I found this example in the MSXML3 documentation, which uses the
document() function in XSLT :
For the given XML document:
<employeeRefs>
<employeeDoc href="http://www.microsoft.com/employees/employeeList.xml"/>
<employeeDoc href="localEmployees1.xml"/>
<employeeDoc href="localEmployees2.xml"/>
</employeeRefs>
The following style sheet generates a document containing the employee
nodes in all of the referenced documents.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<employees>
<xsl:apply-templates select="//employeeDoc"/>
</employees>
</xsl:template>
<xsl:template match="employeeDoc">
<xsl:copy-of select="document(@href)//employee"/>
</xsl:template>
</xsl:stylesheet>
Looks like exactly what you want to do :-)
Cheers,
Neil Smith.
At 02:30 05/02/2003 -0500, you wrote:
Date: Tue, 4 Feb 2003 21:45:48 -0600
From: "Shea, Michael" <Michael_Shea(_at_)adc(_dot_)com>
Subject: [xsl] creating a node-set at run-time
Hi everyone,
We have this xml as our input document:
<list>
<item ref="item1.xml"/>
<item ref="item2.xml"/>
<item ref="item3.xml"/>
<item ref="item4.xml"/>
</list>
We want to go through each of the item elements and using
the document function, load each item?.xml file and check
a specific attribute in the root node of that loaded document
to see if it matches a certain value. If it does match we want
to add the value of the ref attribute to a node-set. We want
to have a variable to which this node-set is assigned, so we
can do some processing on it at a later time (we want to run
a diff on it against another node-set amongst other things).
Basically this is like storing items into a variable (eg
var = var + new_item), but as we know, you can't reassign values
to a variable.
So can this be done using XSLT? I was trying to come up with a
recursive algorithm to do this, but am not sure how.
Thanks in advance.
Mike.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list