Problem in sending back xml from servlet - Help 2004-02-24 - By Jacob Kjome
Which browser? Is it Mozilla? You need to make sure you set the appropriate content-types. top.xml should be provided as "text/xml" or whatever type of XML it is. If it is XHTML, you might use "application/xhtml+xml". Note that "text/xsl" doesn't exist as a content-type. It is only, lamely, recognized by IE. Make sure that the server serving up the .xsl file sets the content type as "text/xml" as well.
The reason it might load up from your file system properly is that Mozilla presumes the content-type based on the file extension ".xml".
Jake
At 10:38 AM 2/24/2004 -0500, you wrote: >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)
--------------------------------------------------------------------- To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected) For additional commands, e-mail: xerces-j-user-help@(protected)
|
|