> Hi all,
>
> I want to be able to parse a java string to an xml representation in a XSP.
> Looking at the source code for the StreamGenerator (which takes a http-post
> stream) i have written the following code to parse a xml string in xsp:
>
>         Parser parser = null;
>         try {
>           org.xml.sax.InputSource inputSource = new org.xml.sax.InputSource(
>             new StringReader(xmldata)
>           );
>           this.getLogger().debug("Looking up parser");
>           parser = (Parser)this.manager.lookup(Parser.ROLE);
>           parser.setContentHandler(this.contentHandler);
>           parser.setLexicalHandler(this.lexicalHandler);
>           parser.parse(inputSource);
>         } catch (Exception ex) {
>           ex.printStackTrace();
>           this.getLogger().debug(ex.getMessage());
>         } finally {
>           if (parser != null) {
>             this.getLogger().debug("Releasing parser");
>             this.manager.release((Component)parser);
>           }
>         }

Be careful. The above will break the XSP SAX structure.
You need to think of the events:

    -xsp:startDocument
     -xsp:startElement
     -xsp:endElement
     - ... some more ...
       // now your code
       -parser:startDocument
        -xsp:startElement
        -xsp:endElement
        - ... some more ...
       -parser:endDocument
    -xsp:endDocument

You see?! start/end Document will be called twice.
This is illegal! Wrapp the page ContentHandler
inside a org.apache.cocoon.xml.EmbeddedXMLPipe before
passing it to the parser.
--
Torsten


---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to