[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: [java] transforming a file to itself - buffered?
> 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
|
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
|