Re: [xsl] Document function -- document may not exist

Subject: Re: [xsl] Document function -- document may not exist
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 03 Jul 2002 17:06:32 -0400
At 2002-07-03 15:44 -0500, mjyoungblut@xxxxxxx wrote:
I was wondering if there is a way of getting around the exception that is
thrown by most parsers if the document function is called for a file that
does not exist.  I would just like to continue on in the processing.  For
example, I would like to do something like the following:

<xsl:variable name="FILE_A" select="document('A.xml')"/>
<xsl:variable name="FILE_B" select="document('B.xml')"/>

<xsl:for-each select="$FILE_A">
     <!-- If it exists, do some processing -->
     ...
</xsl:for-each>
<xsl:for-each select="$FILE_B">
     <!-- Same.... -->
</xsl:for-each>

Is the above not working for you? When the document() function cannot find the document the recovery is to return an empty node-set. Since you are using the result in the <xsl:for-each>, if the result is empty then nothing happens. It seems to me what you have above should work just fine.


I use this for the REST-based aggregation on my web site of the dates of the public courses of those licensees of mine who license our material for public deliveries:

 (1) - if I get a non-empty node set for the URL my licensee gives me,
       I synthesize a local backup copy of the document by using the
       processor extension to write out a node tree as XML
 (2) - if I get an empty node set for the URL my licensee gives me,
       I pass the local backup copy of the document to the document()
       function so at least I have the latest information that was
       available from my licensee the last time it was successful

This means that whenever I build my schedule page listing all of my licensees, I can build all of the information from the most recent successful non-empty return value from the document() function, even if at that point in time there is some reason I cannot reach the private web page on my licensee's site.

This model has made the aggregation of information from multiple sources using XSLT really straightforward and resilient.

I hope this helps.

.............. Ken


-- Upcoming: 3-days XSLT/XPath and/or 2-days XSL-FO:Sep 30-Oct 4,2002

G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0  +1(613)489-0999 (Fax:-0995)
ISBN 0-13-065196-6                       Definitive XSLT and XPath
ISBN 1-894049-08-X   Practical Transformation Using XSLT and XPath
ISBN 1-894049-07-1                Practical Formatting Using XSLFO
XSL/XML/DSSSL/SGML/OmniMark services, books (electronic, printed),
articles, training (instructor-live,Internet-live,web/CD,licensed)
Next public training:                 2002-08-05,26,27,09-30,10-03


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread