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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to