On 18/03/2008, Justin Johansson <procode@xxxxxxxxxxx> wrote:
> As yet I haven't explored the facility afforded by the XSLT/XPath 2
> collection function but the question posed by this thread spurs asking the
> list:
>
> Can the collection function be used as a general (file system) directory
> scanner for non XML files given that XSLT 2 allows the loading of non XML
> documents via the unparsed-text function?
Yes it can. Of course, you first need an implementation that supports
a URI scheme that can scan directories. Arguably, file is legitimate
for this, as browsers usually give you a directory listing if you
supply a file URI that ends with a directory name.
What Gestalt does it return a sequence of documents each containing a
single element, which has various information about that directory
entry. You could then call unparsed-text on the document-uri for that
particular entry.
> It's not unexpected but my investigation found that the (Saxon) XSLT
> processor complained about the text file (containing 'the quick brown fox')
> was not well-formed.
>
> <xsl:for-each select="collection( '?select=fox.txt')">
> <xsl:value-of select="document-uri(.)"/>
> </xsl:for-each>
Note that that URI is not a legitimate file URI (they may not take
query parameters). Saxon is not compliant in this respect (but even if
it were, there is no particular reason that this should work - the
collection() function is very loosely define.
|