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

Re: Using XSLT to process a directory of mixed files

Subject: Re: Using XSLT to process a directory of mixed files
From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 8 May 2019 02:54:15 -0000
Re:  Using XSLT to process a directory of mixed files
If you use the map-producing version of the Saxon collection extension then
you'll get a map one for each file, that gives you more metadata. See the
Saxon documentation for details:
http://saxonica.com/documentation/index.html#!sourcedocs/collections

tl;dr: use metadata=yes to get the metadata map(s) for the selected resources.
You can use e.g. map:keys() to inspect the map entries to see what metadata
you have.

Cheers,

E.
--
Eliot Kimber
http://contrext.com


o;?On 5/7/19, 9:39 PM, "dvint@xxxxxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

    I'm trying to use a collection() to process all files in a directory. The
directory may have text, pddf, images files in addition to my DITA file. I've
created this little test
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        exclude-result-prefixes="xs"
        version="2.0">

        <xsl:variable name="fileSet"
select="collection('/Users/danvint/pubsrc-other/formatting-sample?select=*.*;
recurse=yes')"/>
        <xsl:template match="/">
            <xsl:apply-templates select="$fileSet"
mode="collectionprocessing"/>

        </xsl:template>

        <xsl:template match="/" mode="collectionprocessing">
            '<xsl:value-of select="document-uri()"/>' <xsl:value-of
select="doc-available(document-uri())"/>
        </xsl:template>
    </xsl:stylesheet>


    It seems to do what I expect for XML files with results like this

           'file:/Users/danvint/pubsrc-other/formatting-sample/glossentry-ada
pter.dita' true
            'file:/Users/danvint/pubsrc-other/formatting-sample/conaction/reu
se-push-ds-config-tool.dita' true
            'file:/Users/danvint/pubsrc-other/formatting-sample/conaction/reu
se-update-server.dita' true
            'file:/Users/danvint/pubsrc-other/formatting-sample/submap-ping_i
d_examples.ditamap' true
            'file:/Users/danvint/pubsrc-other/formatting-sample/concept_PDabo
uttheexplodedindexformat.dita' true



    But then I have some odd things. It looks like I hit a binary file of some
sort, based upon the output, but I was just trying to get the file names in
this script

            'file:/Users/danvint/pubsrc-other/formatting-sample/concept_PAWeb
_Access_Management_Agent_Deployment.dita'
trueAAAAAUJ1ZDEAABAAAAAIAAAAEAAAAAIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAA
AAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAQAHNwYmxvYgAAAPZicAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    .... lots of lines here similar to above
    mvQrxFWXHxD6hgAEIAABCGwnAXuvGsvOvVhNBYKutU2nnqv2YZ2rz04qQ7Rm8AoBCEAAAhCAA
ATemQBq5p0R0gAEIAABCEAAAhA4J4C4OmfBEQQgAAEIQAACEHhnAoird0ZIAxCAAAQgAAEIQOCcAO
LqnAVHEIAABCAAAQhA4J0JIK7eGSENQAACEIAABCAAgXMCiKtzFhxBAAIQgAAEIACBdyaAuHpnhDQ
AAQhAAAIQgAAEzgkgrs5ZcAQBCEAAAhCAAATemcD/B/Gl121mZIjuAAAAAElFTkSuQmCC
            'file:/Users/danvint/pubsrc-other/formatting-sample/gloss_PFadmin
Glossary.dita' true



    I don't know what this chunk of content is. Then there is this odd bit

            'file:/Users/danvint/pubsrc-other/formatting-sample/submap_2-noto
c.ditamap' true
            'file:/Users/danvint/pubsrc-other/formatting-sample/glossentry-op
enid.dita' truesub addTaxonomy {	my $inname = $_[0];	my $tempname = $_[0] .
".new";	my $taxonomy = $_[1];	  	open my $in,  '&lt;:encoding(UTF-8)',
$inname      or die "Can't read old file: $inname!";	open my $temp,
'&gt;:encoding(UTF-8)', $tempname or die "Can't write new file: $tempname!";
while( &lt;$in&gt; )	    {		    s/(&lt;head&gt;)/&lt;head\&gt;\n$taxonomy\n/g;
print $temp $_;	    }		 close $temp;		 close $in;		# Replace inout file with
temp, remove temp	rename "./" . $tempname, "./" . $inname or die "Can't move
file $tempname to $inname";	}
            'file:/Users/danvint/pubsrc-other/formatting-sample/submap-knowni
ssues.ditamap' true
            'file:/Users/danvint/pubsrc-other/formatting-sample/concept_PAPor
t_Requirements.dita' true



    These blobs of odd stuff don't follow the pattern of '' around the file
name and the test I thought that would tell me if it was an XML file or not.
There is no true/false provided either.

    What I want to build is a list of files (shell script) that would copy
these other files to a new copy in my processed folder where I will be writing
the results of other work against the DITA files.
    XSL-List info and archive
<http://www.mulberrytech.com/xsl/xsl-list>EasyUnsubscribe
<http://lists.mulberrytech.com/unsub/xsl-list/1278982>
    (by email <>)

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.