You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by st...@outerthought.org on 2003/04/05 14:00:03 UTC

[WIKI-UPDATE] Scherler Sat Apr 5 14:00:02 2003

Page: http://wiki.cocoondev.org/Wiki.jsp?page=Scherler , version: 29 on Sat Apr  5 11:04:13 2003 by Scherler

+ \\
+ ''convert string to xml''
+ {{{Aparently your <xsp:expr>result</xsp:expr> returns a string and not and XML stream.
+ You can use JTidy to convert your String to an XML stream.  It's classes are available in Cocoon!
+ Here's a code snip out of an XSP page that converts a POST from a brower based html editor to an XML stream.
+   <xsp:structure>
+     <xsp:include>org.w3c.tidy.Tidy</xsp:include>
+     <xsp:include>java.io.ByteArrayInputStream</xsp:include>
+   </xsp:structure>
+   <page>
+     <xsp:logic>
+       String strContent = request.getParameter("content");
+       ByteArrayInputStream in = new ByteArrayInputStream( strContent.getBytes() );
+       org.w3c.dom.Document doc = null;
+       org.w3c.tidy.Configuration conf = new org.w3c.tidy.Configuration();
+ 
+       try {
+         Tidy tidy = new Tidy();
+         //Do not show "parsing" messages
+         tidy.setQuiet(true);
+         //Do not show warnings in the Servlet Engine console
+         tidy.setShowWarnings(false);
+         //set the output type
+         tidy.setXmlOut(true);
+         //Set the encoding
+         tidy.setCharEncoding( conf.LATIN1 );
+         //Set output options
+         tidy.setBreakBeforeBR(false);
+         tidy.setQuoteNbsp(true);
+         tidy.setQuoteAmpersand(true);
+         tidy.setLiteralAttribs(true);
+         //Omit the document type in the tidy output
+         tidy.setXmlPi(false);
+         //parse the document tot a DOM tree
+         doc =  tidy.parseDOM(in, null);
+       } catch (Exception e) {
+            //Do some error handling here
+       }
+     </xsp:logic>
+     <content>
+       <xsp:expr>doc.getDocumentElement()</xsp:expr>
+     </content>
+ 
+ 
+ You will need to tweak the Tidy parameters, but you get the idea, I guess.
+ The DOM stream from JTidy is automatically converted to SAX by Cocoon (correct me if I'm wrong) so you can do regular transformations in the pipeline afterwards.
+ 
+ HTH,
+ Bert }}}
+