Subject: RE: Merging of Files According To A List Using Collection
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 11 Jun 2008 11:10:29 +0100
|
Your regular expression
'^[\r\n]'
looks wrong. Try
'(\r?\n)+'
or more simply
'\s+'
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Jeff Sese [mailto:jeferson.sese@xxxxxxxxxxxx]
> Sent: 11 June 2008 11:02
> To: XSL List List
> Subject: Merging of Files According To A List Using Collection
>
> Hi,
>
> I have a file that list of ids that is used to determine to
> order of merging of some file:
>
> id1
> id2
> id3
>
> The files that need to merged has a structure like:
>
> <div id="id1">
> <!-- some content -->
> </div>
>
> I'm merging them using the collection() function in this xsl file:
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="2.0" xmlns:saxon="http://saxon.sf.net/"
> xmlns:xs="http:// www.w3.org/2001/XMLSchema">
> <xsl:param name="dir" as="xs:string"
> select="'file:///Users/jeffsese/
> RND/Berichtigungsliste/Merging/Ostraka'"/>
> <xsl:template name="main" exclude-result-prefixes="#all">
> <div type="Papyri">
> <xsl:for-each select="for $x in
> collection(concat($dir,'?
> select=*.xml;recurse=yes;on-error=ignore')) return
> saxon:discard- document($x)">
> <xsl:copy-of select="."/>
> </xsl:for-each>
> </div>
> </xsl:template>
> </xsl:stylesheet>
>
> How can I make the insertion follow the order that is
> indicated in my text file? I tried this but I can't get any output:
>
> <xsl:variable name="id" as="xs:string*"
> select="tokenize(unparsed-text ($pathOfTextFile, 'UTF-8'),
> '^[\r\n]')"/> <xsl:for-each select="$id">
> <xsl:variable name="myId" as="xs:string" select="."/>
> <xsl:copy-of select="collection(concat($dir,'?
> select=*.xml;recurse=yes;on-error=ignore'))/div[@id=$myId]"/>
> </xsl:for-each>
>
> Thanks,
> -- Jeff
|