Hi all, I assume Harshini needs to get the original XML-String from a CharArrayReader (after rendering), which he used to equip the InputSource. IMHO there is no chance to get the XML-String back, because CharArrayReader.close() sets the internal Char-Buffer, which holds the XML-String, to null. Thus one would either need to introduce a new attribute somewhere in Harshinis class/code or extending class InputSource. I would prefer the second method. This should give you a start point:
class MyInputSource extends InputSource{
private String xml;
public MyInputSource(String xml){
super(new CharArrayReader(xml));
}
public String getXML(){
return this.xml;
}
}
Somewhere later...
((MyInputSource) source).getXML()
returns the xml.
Note that the code above is not tested, just typed in Outlook. ;-)
Cheers,
Sascha
PS: Of course it is correct that FOP closes the stream after processing it.
NORTHBIT
RTF to XSL-FO, Reporting
Dipl. Inf. Sascha Schmidt
[EMAIL PROTECTED]
www.northbit.de
> -----Original Message-----
> From: Harshini Madurapperuma [mailto:[EMAIL PROTECTED]
> Sent: Thursday, April 05, 2007 5:18 AM
> To: [email protected]
> Subject: RE: Convert InputSource into a Character array
>
> Hi;
>
> I have this character array, I converted that character array into to a
> InputSource and passed it as a parameter to a "render(XMLReader parser,
> InputSource source)" method in the DRIVER class in fop.
>
> Within that "render" class I need to convert that "InputSource (source)"
> back into a character array (after doing some modifications inside that
> method). I tried to convert that as follows:
>
> > if (source.getCharacterStream() != null) {
> > BufferedReader reader = new
> BufferedReader(source.getCharacterStream());
> > CharArrayWriter writer=new CharArrayWriter();
> > int i=-1;
> > while ((i=reader.read())!=-1)
> > {
> > writer.write(i);
> > }
> > reader.close();
> > writer.close();
> > }
>
> While doing that it raise this Exception:
> > EXCEPTION-------------------------------------------------------------
> > ------
> > ----
> >
> > java.io.IOException: Stream closed at
> > java.io.CharArrayReader.ensureOpen(CharArrayReader.java:65) at
> > java.io.CharArrayReader.read(CharArrayReader.java:95) at
> > java.io.BufferedReader.fill(BufferedReader.java:136) at
> > java.io.BufferedReader.read(BufferedReader.java:157) at
> > org.apache.fop.apps.Driver.render(Driver.java:557)
> > ----------------------------------------------------------------------
>
> I need to know the reason or is there any other method to convert this and
> access the content of this inputSource?
>
> Thanx
> Harshini
>
>
>
> -----Original Message-----
> From: Jeremias Maerki [mailto:[EMAIL PROTECTED]
> Sent: Thursday, April 05, 2007 12:11 AM
> To: [email protected]
> Subject: Re: Convert InputSource into a Character array
>
> I don't understand what you're trying to do. Maybe you should explain that
> before going into technical details.
>
> On 04.04.2007 06:08:53 Harshini Madurapperuma wrote:
> > Hi All;
> >
> > In fop Driver class there is a method called
> >
> > public synchronized void render(XMLReader parser, InputSource source)
> > throws FOPException {
> >
> > }
> >
> > Is there a way to convert that InputSource "source" back into a
> > character array within that render class? I tried to do it by this way
> > but it throws a "Stream Closed" Exception.
> > ----------------------------------------------------------------------
> > ------
> > --
> > if (source.getCharacterStream() != null) {
> > BufferedReader reader = new
> > BufferedReader(source.getCharacterStream());
> > CharArrayWriter writer=new CharArrayWriter();
> > int i=-1;
> > while ((i=reader.read())!=-1)
> > {
> > writer.write(i);
> > }
> > reader.close();
> > writer.close();
> > }
> > ----------------------------------------------------------------------
> > ------
> > ----
> > EXCEPTION-------------------------------------------------------------
> > ------
> > ----
> >
> > java.io.IOException: Stream closed at
> > java.io.CharArrayReader.ensureOpen(CharArrayReader.java:65) at
> > java.io.CharArrayReader.read(CharArrayReader.java:95) at
> > java.io.BufferedReader.fill(BufferedReader.java:136) at
> > java.io.BufferedReader.read(BufferedReader.java:157) at
> > org.apache.fop.apps.Driver.render(Driver.java:557)
> > ----------------------------------------------------------------------
> > ------
> > -----
> >
> > I'm using java as the language. Pls ur help will be greatly
> > appreciated Thanx Harshini.
>
>
> Jeremias Maerki
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
smime.p7s
Description: S/MIME cryptographic signature
