|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: document() loops
On Friday 13 September 2002 06:10, Laura Jenkins wrote:
> <xsl:for-each
> select="document(univ-xml[1])/university-records/univ-ids/univ">
> <xsl:element name= "univ{position()}">
> <xsl:value-of select="name"/>
> </xsl:element>
> <xsl:if test= "position() = last()">
> <second-xml>
> <xsl:for-each
> select="document(univ-xml[2])/university-records/univ-ids/univ">
^^^^^^^^
There is your problem: you have a relative XPath expression. The first
for-each evaluates its expression in the context of whatever node you
selected outside the for-each, presumably a univ-xml-list from your example.
The second for-each is evaluating its expression in the context of what was
selected from the first for-each, which is
"/university-records/univ-ids/univ". For this to work, the document loaded
by the first document() would have to look like this:
<university-records>
<univ-ids>
<univ>
<univ-xml>ignored</univ-xml>
<univ-xml>this is univ-xml[2]</univ-xml>
</>
I'm guessing that's not what you want. If it is, ignore me.
You either need an absolute path to univ-xml[2], or you need to store it in a
variable before the first for-each changes the context. For example:
<xsl:variable name="univ-xml-2" select="univ-xml[2]"/>
<xsl:for-each select="document(univ-xml[1])/...">
...
<xsl:for-each select="document($univ-xml-2)/...">
...
</>
HTH
--
Peter Davis
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








