[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Merging of Files According To A List Using Collect
Subject: Re: Merging of Files According To A List Using Collection
From: Jeff Sese <jeferson.sese@xxxxxxxxxxxx>
Date: Wed, 11 Jun 2008 18:28:08 +0800
|
Thanks!
I was matching every single character in my list that is not \r\n
thats why my xpath does not return anything. I change my xsl:copy
instruction to:
<xsl:copy-of select="saxon:discard-document(collection(concat($dir,'?
select=*.xml;recurse=yes;on-error=ignore'))[div[@id=$title]])"/>
I'm using saxon:discard-document so that I would not get an Out of
Memory error. The files when merge gets up to 49Mb.
Again thanks,
-- Jeff
On 06 11, 08, at 6:10 PM, Michael Kay wrote:
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
Jeferson L. Sese
jeferson dot sese at asiatype dot com
Asiatype Inc.
Suite 114 Columbia Tower
Ortigas Ave., Greenhills
Mandaluyong City 1550 Philippines
Tel: +632-744-6262
Mobile: +63927-671-7901
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|