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: fop-users@xmlgraphics.apache.org
> 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: fop-users@xmlgraphics.apache.org
> 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]

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to