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

RE: [java] transforming a file to itself - buffered?

Subject: RE: [java] transforming a file to itself - buffered?
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Tue, 4 Jun 2002 23:35:36 +0100
user mapped section open java
> What is the best way to handle transforming a file to itself?
> 
> Currently I do:
> File source = new File(servlet_context.getRealPath(_xml));
> transformer.transform(new StreamSource(source), new 
> StreamResult(source));

I wouldn't recommend using the same file as input and output. Transform
to a byte array as the output, then write the byte array to the file if
the transformation succeeds. 
> 
> Is there any way to do buffered  reads and writes to this 
> file? Is there a benefit to doing this?

Saxon will of course try to do the reads and writes efficiently, but if
you think you can do better (e.g. by taking advantage of the JDK 1.4 nio
package) you could try implementing your own InputStream or OutputStream
classes.
> 
> Is there a way to use the new 1.4 non blocking I/O 
> (java.nio)? <random_thought> The code below should(?) work on 
> the entire file, but 
> could you possibly identify a section (nodeset) of an XML file and 
> perform a transformation on it? Is this just silly?</random_thought>

If you only want to transform one subtree of an XML file, the best
approach is to write a SAX pipeline. Pass the events relating to the
non-transformed part of the file straight from your input handler to
your output handler; for the transformed part, treat the subtree as a
document thaht is passed to the transformer (treating it as a SAX filter
using the TransformerHandler interface) and passing its output events to
your output handler.
> 
> I tried to do the following but I get an error in saxon 6.52 saying: 
> (The requested operation cannot be performed on a file with a 
> user-mapped section open)

Then you are misusing parts of the Java IO library in a way that I don't
pretend to understand.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


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.