xsl-list
[Top] [All Lists]

[xsl] Xalan: Pagination of transformation output

2015-09-21 05:49:37
Hi all.
I’m looking for advice on paginating the output of a transformation.
Some of the XML documents we pass through our transformations produce very 
large HTML output.  We would like to paginate this output.
We cannot split the source XML into manageable ‘chunks’ and process them 
individually.  It has to be transformed as a whole (// matches etc).
Currently the transformation produces a valid block of HTML - not the whole 
HTML page.  This is then poked into the main page via Ajax. 
I was thinking of wrapping the FileOutputStream of the transformation with a 
stream to monitor the size of HTML output so far so as to know when my 'chunk' 
size limit is reached.
Obviously the output HTML 'chunk' needs to be valid HTML.

Some initial thoughts on this:I would need a stack of somekind to keep track of 
what HTML elements have already been output so as to be able to close them off 
(and re-open them for that matter). I.e div within a div within a div...Our 
transformation output is quite 'clean', mainly div's etc but there are HTML 
tables - would probably not split tables due to headings etc (and would 
generally look bad/be confusing I think).
I'm not sure if this is achievable just via monitoring the output stream 
though.  Maybe I will need to hook into the actual transformation events 
themselves so as to know where I am in the document.Think TransformerHandler 
might be able to help me here... This gives me startElement, endElement, 
characters listener events.
Would just like to put this interesting problem to the floor for any 
suggestions.
Many thanks                                       
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>