You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Ragunath Marudhachalam <rm...@circuitvision.com> on 2004/02/24 16:38:02 UTC

Problem in sending back xml from servlet - Help

All,

	I'm trying to read a xml file, then add a processing instruction and trying
to send it back as response from a servlet. But when i send the response and
try to view it from the browser, i dont see the processing instruction added
to the xml file. But if i write the document object to a file in the server
and read it from that file then the xslt processing tag is attached and the
browser displays it correctly.


Reading xml from the file and adding processing instruction.

	    FileInputStream fis = new FileInputStream("C:\\ragu\\top10.xml");
                InputSource	in_src = new InputSource(fis);
                DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
                DocumentBuilder db = dbf.newDocumentBuilder();
                Document document = db.parse(in_src);
                String xslpath = req.getScheme() + "://" +
req.getServerName() + ":" + req.getServerPort();
                ProcessingInstruction pi =
document.createProcessingInstruction("xml-stylesheet", "href=\""+
"http://wsd-007/summary.xslt"  +"\" type=\"text/xsl\"");
                document.insertBefore(pi, document.getDocumentElement());
                document.normalize();


***********************************************************************

writing the document to a file. This file has the processing instruction
attached to it.

	    FileOutputStream fos_1 = new
FileOutputStream("c:\\ragu\\test_cv_servlet.xml");
                BufferedOutputStream bos_1 = new
BufferedOutputStream(fos_1);
                OutputFormat format_1 = new OutputFormat(document);
                format_1.setEncoding("ISO-8859-1");
                //format.setEncoding(System.getProperty("DbEncoding"));
                StringWriter stringOut_1 = new StringWriter();
                XMLSerializer serial_1 = new XMLSerializer(stringOut_1,
format_1);
                serial_1.asDOMSerializer();
                serial_1.serialize(document);
                bos_1.write(stringOut_1.toString().getBytes());
                bos_1.flush();
                fos_1.close();

***************************************************************************

sending it back from the document object. But the processing instruction is
not there.


	    OutputStream os = res.getOutputStream();
                OutputFormat    format  = new OutputFormat( document );
//Serialize DOM
                format.setEncoding("ISO-8859-1");
                StringWriter  StringOut = new StringWriter();
//Writer will be a String
                XMLSerializer    serial = new XMLSerializer( StringOut,
format );
                serial.asDOMSerializer();
                serial.serialize(document.getDocumentElement());
                //OutWriter.write(StringOut.toString());
                os.write(StringOut.toString().getBytes());
                os.flush();
                os.close();

****************************************************************************
**

Please advice me what i'm doing wrong or how to send a document with the
processing instructions.


Ragu
CircuitVision



---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org