[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Document function -- document may not exist

Subject: Re: Document function -- document may not exist
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 03 Jul 2002 17:06:32 -0400
xsl document function
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.