xml schreiben und parsen in java

Hi,

ich habe mich an demselben Thema versucht, scheitere aber offensichtlich.
Ich habe das ganze direkt in ein Servlet gepackt und möchte ankommende Daten in pdf umwandeln. Hier mein Code:
Code:
public class pdfServlet extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

        try{
            response.setContentType("application/pdf");
            
            Document doc = new Document(new Element("root"));
            Element rootElement = doc.getRootElement();
        
            String[] elements = {"Eins", "Zwei"};
            String[] content = {"eins", "zwei"};
            
            for (int i = 0; i < elements.length; i++) {
                Element element = new Element(elements[i]);
                element.addContent(content[i]);
                rootElement.addContent(element);
            }
            
            XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
            FileOutputStream output = new FileOutputStream("offer.xml");
            outputter.output(doc, output);          
                        
            //Setup a buffer to obtain the content length
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            
            //Setup FOP
            FopFactory fopFactory = FopFactory.newInstance();
            Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);

            //Setup Transformer
            
            String fnXsl = getServletContext().getRealPath("/pdfStylesheet.xsl");
            Source xsltSrc = new StreamSource(new File(fnXsl));
            TransformerFactory tFactory = TransformerFactory.newInstance();
            Transformer transformer = tFactory.newTransformer(xsltSrc);

            //Make sure the XSL transformation's result is piped through to FOP
            Result res = new SAXResult(fop.getDefaultHandler());

            //Setup input
            Reader reader = new StringReader(doc.toString());
            StreamSource src = new StreamSource(reader);

            //Start the transformation and rendering process
            transformer.transform(src, res);

            //Prepare response
            response.setContentLength(out.size());
    
            //Send content to Browser
            response.getOutputStream().write(out.toByteArray());
            response.getOutputStream().flush();
        }
        catch (Exception ex){
            ex.printStackTrace();
        }        
    }

Das Problem ist, dass ich folgende Fehlermeldung erhalte:

STDERR] System-ID unbekannt; Zeilennummer1; Spaltennummer1; Content is not allowed in prolog.

Ich weiß mit diesem Fehler leider nichts anzufangen...
Hat einer von Euch nen Tipp für mich?

Gruß shocking
 

Neue Beiträge

Zurück