Example usage for javax.xml.transform.dom DOMResult DOMResult

List of usage examples for javax.xml.transform.dom DOMResult DOMResult

Introduction

In this page you can find the example usage for javax.xml.transform.dom DOMResult DOMResult.

Prototype

public DOMResult() 

Source Link

Document

Zero-argument default constructor.

Usage

From source file:org.apache.camel.component.xquery.XQueryBuilder.java

public Node evaluateAsDOM(Exchange exchange) throws Exception {
    initialize(exchange);/*w ww .java 2 s. co  m*/

    DOMResult result = new DOMResult();
    DynamicQueryContext context = createDynamicContext(exchange);
    XQueryExpression expression = getExpression();
    expression.pull(context, result, properties);
    return result.getNode();
}

From source file:org.apache.camel.dataformat.tagsoup.TidyMarkupDataFormat.java

/**
 * Return the HTML Markup as an {@link org.w3c.dom.Node}
 * /*from   w w w . j  a va 2 s .  c  o  m*/
 * @param inputStream
 *            The input Stream to convert
 * @return org.w3c.dom.Node The HTML Markup as a DOM Node
 * @throws CamelException
 */
public Node asNodeTidyMarkup(InputStream inputStream) throws CamelException {
    XMLReader parser = createTagSoupParser();
    StringWriter w = new StringWriter();
    parser.setContentHandler(createContentHandler(w));

    try {
        Transformer transformer = TransformerFactory.newInstance().newTransformer();
        DOMResult result = new DOMResult();
        transformer.transform(new SAXSource(parser, new InputSource(inputStream)), result);
        return result.getNode();
    } catch (Exception e) {
        throw new CamelException("Failed to convert the HTML to tidy Markup", e);
    }
}

From source file:org.apache.camel.processor.cache.CacheBasedXPathReplacer.java

public void process(Exchange exchange) throws Exception {
    // Cache the buffer to the specified Cache against the specified key
    cacheManager = new CacheManagerFactory().instantiateCacheManager();

    if (isValid(cacheManager, cacheName, key)) {
        cache = cacheManager.getCache(cacheName);

        if (LOG.isDebugEnabled()) {
            LOG.debug("Replacing XPath value " + xpath + "in Message with value stored against key " + key
                    + " in CacheName " + cacheName);
        }/*  w  ww.j a v a  2 s.c  om*/
        exchange.getIn().setHeader("CACHE_KEY", key);
        Object body = exchange.getIn().getBody();
        InputStream is = exchange.getContext().getTypeConverter().convertTo(InputStream.class, body);
        try {
            document = exchange.getContext().getTypeConverter().convertTo(Document.class, exchange, is);
        } finally {
            IOHelper.close(is, "is", LOG);
        }

        InputStream cis = exchange.getContext().getTypeConverter().convertTo(InputStream.class,
                cache.get(key).getObjectValue());

        try {
            Document cacheValueDocument = exchange.getContext().getTypeConverter().convertTo(Document.class,
                    exchange, cis);

            // Create/setup the Transformer
            XmlConverter xmlConverter = new XmlConverter();
            String xslString = IOConverter.toString(new File("./src/main/resources/xpathreplacer.xsl"),
                    exchange);
            xslString = xslString.replace("##match_token##", xpath);
            Source xslSource = xmlConverter.toStreamSource(new StringReader(xslString));
            TransformerFactory transformerFactory = xmlConverter.createTransformerFactory();
            Transformer transformer = transformerFactory.newTransformer(xslSource);
            source = xmlConverter.toDOMSource(document);
            result = new DOMResult();

            transformer.setParameter("cacheValue", cacheValueDocument);
            transformer.transform(source, result);
        } finally {
            IOHelper.close(cis, "cis", LOG);
        }
    }

    // DOMSource can be converted to byte[] by camel type converter mechanism
    DOMSource dom = new DOMSource(result.getNode());
    exchange.getIn().setBody(dom, byte[].class);
}

From source file:org.apache.falcon.converter.OozieProcessMapper.java

protected void marshalHiveAction(ACTION wfAction,
        JAXBElement<org.apache.falcon.oozie.hive.ACTION> actionjaxbElement) {
    try {/* w w  w. j  a  v  a2  s. co m*/
        DOMResult hiveActionDOM = new DOMResult();
        Marshaller marshaller = HIVE_ACTION_JAXB_CONTEXT.createMarshaller();
        marshaller.marshal(actionjaxbElement, hiveActionDOM);
        wfAction.setAny(((Document) hiveActionDOM.getNode()).getDocumentElement());
    } catch (JAXBException e) {
        throw new RuntimeException("Unable to marshall hive action.", e);
    }
}

From source file:org.apache.fop.accessibility.AccessibilityPreprocessor.java

/** {@inheritDoc} */
public void endDocument() throws SAXException {
    super.endDocument();
    // do the second transform to struct
    try {//from   ww  w  . j  a  v  a 2  s . c  om
        //TODO this must be optimized, no buffering (ex. SAX-based tee-proxy)
        byte[] enrichedFO = enrichedFOBuffer.toByteArray();
        Source src = new StreamSource(new ByteArrayInputStream(enrichedFO));
        DOMResult res = new DOMResult();
        reduceFOTree.transform(src, res);
        StructureTree structureTree = new StructureTree();
        NodeList pageSequences = res.getNode().getFirstChild().getChildNodes();
        for (int i = 0; i < pageSequences.getLength(); i++) {
            structureTree.addPageSequenceStructure(pageSequences.item(i).getChildNodes());
        }
        userAgent.setStructureTree(structureTree);

        SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
        saxParserFactory.setNamespaceAware(true);
        saxParserFactory.setValidating(false);
        SAXParser saxParser = saxParserFactory.newSAXParser();
        InputStream in = new ByteArrayInputStream(enrichedFO);
        saxParser.parse(in, fopHandler);
    } catch (Exception e) {
        throw new SAXException(e);
    }
}

From source file:org.apache.fop.intermediate.AreaTreeParserTestCase.java

/** {@inheritDoc} */
protected Document buildIntermediateDocument(Templates templates) throws Exception {
    Transformer transformer = templates.newTransformer();
    setErrorListener(transformer);//from   www.  j  a  va 2 s .  co m

    //Set up XMLRenderer to render to a DOM
    TransformerHandler handler = testAssistant.getTransformerFactory().newTransformerHandler();
    DOMResult domResult = new DOMResult();
    handler.setResult(domResult);

    FOUserAgent userAgent = createUserAgent();

    //Create an instance of the target renderer so the XMLRenderer can use its font setup
    Renderer targetRenderer = userAgent.getRendererFactory().createRenderer(userAgent, getTargetMIME());

    XMLRenderer renderer = new XMLRenderer(userAgent);
    renderer.mimicRenderer(targetRenderer);
    renderer.setContentHandler(handler);

    userAgent.setRendererOverride(renderer);

    Fop fop = fopFactory.newFop(MimeConstants.MIME_FOP_AREA_TREE, userAgent);
    Result res = new SAXResult(fop.getDefaultHandler());
    transformer.transform(new DOMSource(testDoc), res);

    return (Document) domResult.getNode();
}

From source file:org.apache.fop.intermediate.AreaTreeParserTestCase.java

/** {@inheritDoc} */
protected Document parseAndRenderToIntermediateFormat(Source src) throws Exception {
    AreaTreeParser parser = new AreaTreeParser();

    //Set up XMLRenderer to render to a DOM
    TransformerHandler handler = testAssistant.getTransformerFactory().newTransformerHandler();
    DOMResult domResult = new DOMResult();
    handler.setResult(domResult);/*from  w w w . j a v a2 s  .c o m*/
    FOUserAgent userAgent = createUserAgent();
    XMLRenderer renderer = new XMLRenderer(userAgent);
    userAgent.setRendererOverride(renderer);
    renderer.setContentHandler(handler);

    FontInfo fontInfo = new FontInfo();
    AreaTreeModel treeModel = new RenderPagesModel(userAgent, MimeConstants.MIME_FOP_AREA_TREE, fontInfo, null);
    parser.parse(src, treeModel, userAgent);
    treeModel.endDocument();

    return (Document) domResult.getNode();
}

From source file:org.apache.fop.intermediate.IFParserTestCase.java

/** {@inheritDoc} */
@Override//from  w ww.j av a 2s.com
protected Document parseAndRenderToIntermediateFormat(Source src) throws Exception {
    IFParser parser = new IFParser();

    FOUserAgent userAgent = createUserAgent();

    IFSerializer serializer = new IFSerializer();
    serializer.setContext(new IFContext(userAgent));
    DOMResult domResult = new DOMResult();
    serializer.setResult(domResult);

    parser.parse(src, serializer, userAgent);

    return (Document) domResult.getNode();
}

From source file:org.apache.fop.plan.PreloaderPlan.java

private Document getDocument(InputStream in) throws TransformerException {
    TransformerFactory tFactory = TransformerFactory.newInstance();
    //Custom error listener to minimize output to console
    ErrorListener errorListener = new DefaultErrorListener(log);
    tFactory.setErrorListener(errorListener);
    Transformer transformer = tFactory.newTransformer();
    transformer.setErrorListener(errorListener);
    Source source = new StreamSource(in);
    DOMResult res = new DOMResult();
    transformer.transform(source, res);/*from w ww .ja  v a  2s.c  o m*/

    Document doc = (Document) res.getNode();
    return doc;
}

From source file:org.apache.fop.tools.EventProducerCollectorTask.java

/**
 * Updates the translation file with new entries for newly found event producer methods.
 * @param modelFile the model file to use
 * @throws IOException if an I/O error occurs
 *//*from w ww  .  j av  a 2s .com*/
protected void updateTranslationFile(File modelFile) throws IOException {
    try {
        boolean resultExists = getTranslationFile().exists();
        SAXTransformerFactory tFactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance();

        //Generate fresh generated translation file as template
        Source src = new StreamSource(modelFile.toURI().toURL().toExternalForm());
        StreamSource xslt1 = new StreamSource(getClass().getResourceAsStream(MODEL2TRANSLATION));
        if (xslt1.getInputStream() == null) {
            throw new FileNotFoundException(MODEL2TRANSLATION + " not found");
        }
        DOMResult domres = new DOMResult();
        Transformer transformer = tFactory.newTransformer(xslt1);
        transformer.transform(src, domres);
        final Node generated = domres.getNode();

        Node sourceDocument;
        if (resultExists) {
            //Load existing translation file into memory (because we overwrite it later)
            src = new StreamSource(getTranslationFile().toURI().toURL().toExternalForm());
            domres = new DOMResult();
            transformer = tFactory.newTransformer();
            transformer.transform(src, domres);
            sourceDocument = domres.getNode();
        } else {
            //Simply use generated as source document
            sourceDocument = generated;
        }

        //Generate translation file (with potentially new translations)
        src = new DOMSource(sourceDocument);

        //The following triggers a bug in older Xalan versions
        //Result res = new StreamResult(getTranslationFile());
        OutputStream out = new java.io.FileOutputStream(getTranslationFile());
        out = new java.io.BufferedOutputStream(out);
        Result res = new StreamResult(out);
        try {
            StreamSource xslt2 = new StreamSource(getClass().getResourceAsStream(MERGETRANSLATION));
            if (xslt2.getInputStream() == null) {
                throw new FileNotFoundException(MERGETRANSLATION + " not found");
            }
            transformer = tFactory.newTransformer(xslt2);
            transformer.setURIResolver(new URIResolver() {
                public Source resolve(String href, String base) throws TransformerException {
                    if ("my:dom".equals(href)) {
                        return new DOMSource(generated);
                    }
                    return null;
                }
            });
            if (resultExists) {
                transformer.setParameter("generated-url", "my:dom");
            }
            transformer.transform(src, res);
            if (resultExists) {
                log("Translation file updated: " + getTranslationFile());
            } else {
                log("Translation file generated: " + getTranslationFile());
            }
        } finally {
            IOUtils.closeQuietly(out);
        }
    } catch (TransformerException te) {
        throw new IOException(te.getMessage());
    }
}