Problem in sending back xml from servlet - Help 2004-02-24 - By Ragunath Marudhachalam
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@(protected) For additional commands, e-mail: xerces-j-user-help@(protected)
|
|