Subject: RE: [xsl] [java] transforming a file to itself - buffered? From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Tue, 4 Jun 2002 23:35:36 +0100 |
> 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] [java] transforming a fil, Robert Koberg | Thread | [xsl] Escaping newlines in an XSL f, ROBERTS Jeff |
[xsl] Pass an element based on its , CROFT, MICHAEL | Date | Re: [xsl] What is %26 doing in my H, Mike Brown |
Month |