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(Node node) 

Source Link

Document

Use a DOM node to create a new output target.

Usage

From source file:Examples.java

/**
 * Show the Transformer using SAX events in and DOM nodes out.
 *///  w  w w  .j  a va2  s .c  om
public static void exampleContentHandler2DOM(String sourceID, String xslID) throws TransformerException,
        TransformerConfigurationException, SAXException, IOException, ParserConfigurationException {
    TransformerFactory tfactory = TransformerFactory.newInstance();

    // Make sure the transformer factory we obtained supports both
    // DOM and SAX.
    if (tfactory.getFeature(SAXSource.FEATURE) && tfactory.getFeature(DOMSource.FEATURE)) {
        // We can now safely cast to a SAXTransformerFactory.
        SAXTransformerFactory sfactory = (SAXTransformerFactory) tfactory;

        // Create an Document node as the root for the output.
        DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
        org.w3c.dom.Document outNode = docBuilder.newDocument();

        // Create a ContentHandler that can liston to SAX events 
        // and transform the output to DOM nodes.
        TransformerHandler handler = sfactory.newTransformerHandler(new StreamSource(xslID));
        handler.setResult(new DOMResult(outNode));

        // Create a reader and set it's ContentHandler to be the 
        // transformer.
        XMLReader reader = null;

        // Use JAXP1.1 ( if possible )
        try {
            javax.xml.parsers.SAXParserFactory factory = javax.xml.parsers.SAXParserFactory.newInstance();
            factory.setNamespaceAware(true);
            javax.xml.parsers.SAXParser jaxpParser = factory.newSAXParser();
            reader = jaxpParser.getXMLReader();

        } catch (javax.xml.parsers.ParserConfigurationException ex) {
            throw new org.xml.sax.SAXException(ex);
        } catch (javax.xml.parsers.FactoryConfigurationError ex1) {
            throw new org.xml.sax.SAXException(ex1.toString());
        } catch (NoSuchMethodError ex2) {
        }
        if (reader == null)
            reader = XMLReaderFactory.createXMLReader();
        reader.setContentHandler(handler);
        reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler);

        // Send the SAX events from the parser to the transformer,
        // and thus to the DOM tree.
        reader.parse(sourceID);

        // Serialize the node for diagnosis.
        exampleSerializeNode(outNode);
    } else {
        System.out.println(
                "Can't do exampleContentHandlerToContentHandler because tfactory is not a SAXTransformerFactory");
    }
}

From source file:com.occamlab.te.parsers.ImageParser.java

private static Document parse(InputStream source, Element instruction, PrintWriter logger) throws Exception {
    ImageReader reader;/* ww w.  ja  va  2s.  c om*/
    try {
        ImageInputStream iis = ImageIO.createImageInputStream(source);
        reader = ImageIO.getImageReaders(iis).next();
        reader.setInput(iis);
    } catch (Exception e) {
        logger.println("No image handlers available for the data stream. " + e.getMessage());
        throw e;
    }

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document doc = db.newDocument();

    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer t = tf.newTransformer();
    t.transform(new DOMSource(instruction), new DOMResult(doc));

    Element new_instruction = doc.getDocumentElement();

    int framesRead = 0;
    boolean containsFrames = false;
    Element framesElement = null;
    Element metadataElement = null;

    NodeList nodes = new_instruction.getChildNodes();
    for (int i = 0; i < nodes.getLength(); i++) {
        Node node = nodes.item(i);
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            // System.out.println(node.getLocalName());
            if (node.getLocalName().equals("type")) {
                node.setTextContent(reader.getFormatName().toLowerCase());
            } else if (node.getLocalName().equals("frames")) {
                framesElement = (Element) node;
                containsFrames = true;
            } else if (node.getLocalName().equals("metadata")) {
                metadataElement = (Element) node;
            } else if (node.getLocalName().equals("frame")) {
                int frame;
                String frameStr = ((Element) node).getAttribute("num");
                if (frameStr.length() == 0) {
                    frame = framesRead;
                    framesRead++;
                    ((Element) node).setAttribute("num", Integer.toString(frame));
                } else {
                    frame = Integer.parseInt(frameStr);
                    framesRead = frame + 1;
                }
                processFrame(reader, frame, node.getChildNodes(), logger);
                containsFrames = true;
            }
        }
    }

    if (containsFrames) {
        if (metadataElement != null) {
            IIOMetadata metadata = reader.getStreamMetadata();
            if (metadata != null) {
                String format = metadataElement.getAttribute("format");
                if (format.length() == 0) {
                    format = metadata.getNativeMetadataFormatName();
                }
                Node tree = metadata.getAsTree(format);
                t.transform(new DOMSource(tree), new DOMResult(metadataElement));
            }
        }
        if (framesElement != null) {
            boolean allowSearch = !reader.isSeekForwardOnly();
            int frames = reader.getNumImages(allowSearch);
            if (frames == -1) {
                try {
                    while (true) {
                        reader.read(framesRead);
                        framesRead++;
                    }
                } catch (Exception e) {
                    jlogger.log(Level.SEVERE, "", e);

                    frames = framesRead + 1;
                }
            }
            framesElement.setTextContent(Integer.toString(frames));
        }
    } else {
        processFrame(reader, 0, nodes, logger);
        framesRead = 1;
    }

    // t.transform(new DOMSource(doc), new StreamResult(System.out));
    return doc;
}

From source file:org.castor.jaxb.CastorMarshallerTest.java

/**
 * Marshals the object into a {@link DOMResult}.
 *
 * @param entity the object to marshall//  w  ww.  j  a v  a  2s.  co  m
 *
 * @throws Exception if any error occurs during marshalling
 */
private void marshallDOMResult(Object entity) throws Exception {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();

    Node document = builder.newDocument();

    marshaller.marshal(entity, new DOMResult(document));

    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.setOutputProperty(OutputKeys.METHOD, "xml");

    StringWriter writer = new StringWriter();
    transformer.transform(new DOMSource(document), new StreamResult(writer));

    assertXMLEqual("Marshaller written invalid result.", EXPECTED_XML, writer.toString());
}

From source file:de.betterform.xml.dom.DOMUtil.java

public static void prettyPrintDOM(Node node, Node output) throws TransformerException {
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    transformer.setOutputProperty(OutputKeys.METHOD, "xml");
    transformer.transform(new DOMSource(node), new DOMResult(node));
}

From source file:it.cnr.icar.eric.common.BindingUtility.java

public SOAPElement getSOAPElementFromBindingObject(Object obj) throws JAXRException {
    SOAPElement soapElem = null;/*from   w  w  w  .  j av a2 s .c o m*/

    try {
        SOAPElement parent = SOAPFactory.newInstance().createElement("dummy");

        Marshaller marshaller = jaxbContext.createMarshaller();
        marshaller.marshal(obj, new DOMResult(parent));

        soapElem = (SOAPElement) parent.getChildElements().next();

    } catch (Exception e) {
        throw new JAXRException(e);
    }

    return soapElem;
}

From source file:org.apache.fop.render.svg.SVGDocumentHandler.java

/** {@inheritDoc} */
public void startDocument() throws IFException {
    super.startDocument();
    DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
    builderFactory.setNamespaceAware(true);
    builderFactory.setValidating(false);
    try {/*from   w w w  .  ja v a 2s. c  om*/
        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        this.reusedParts = builder.newDocument();
    } catch (ParserConfigurationException e) {
        throw new IFException("Error while setting up a DOM for SVG generation", e);
    }

    try {
        TransformerHandler toDOMHandler = tFactory.newTransformerHandler();
        toDOMHandler.setResult(new DOMResult(this.reusedParts));
        this.handler = decorate(toDOMHandler);
        this.handler.startDocument();
    } catch (SAXException se) {
        throw new IFException("SAX error in startDocument()", se);
    } catch (TransformerConfigurationException e) {
        throw new IFException("Error while setting up a TransformerHandler for SVG generation", e);
    }
}

From source file:org.apache.ode.utils.DOMUtils.java

/**
 * Parse an XML document located using an {@link InputSource} using the
 * pooled document builder./*from  w  w w.  j a  v  a2s  . co m*/
 */
public static Document sourceToDOM(Source inputSource) throws IOException {
    try {
        /*
        // Requires JDK 1.6+
        if (inputSource instanceof StAXSource) {
        StAXSource stax = (StAXSource) inputSource;
        //if (stax.getXMLEventReader() != null || sax.getXMLStreamReader() != null) {
        if (sax.getXMLStreamReader() != null) {
            return parse(stax.getXMLStreamReader());
        }
        }
        */
        if (inputSource instanceof SAXSource) {
            InputSource sax = ((SAXSource) inputSource).getInputSource();
            if (sax.getCharacterStream() != null || sax.getByteStream() != null) {
                return parse(((SAXSource) inputSource).getInputSource());
            }
        }
        if (inputSource instanceof DOMSource) {
            Node node = ((DOMSource) inputSource).getNode();
            if (node != null) {
                return toDOMDocument(node);
            }
        }
        if (inputSource instanceof StreamSource) {
            StreamSource stream = (StreamSource) inputSource;
            if (stream.getReader() != null || stream.getInputStream() != null) {
                return toDocumentFromStream((StreamSource) inputSource);
            }
        }
        DOMResult domresult = new DOMResult(newDocument());
        Transformer txer = getTransformer();
        txer.transform(inputSource, domresult);
        return (Document) domresult.getNode();
    } catch (SAXException e) {
        throwIOException(e);
    } catch (TransformerException e) {
        throwIOException(e);
    }
    throw new IllegalArgumentException("Cannot parse XML source: " + inputSource.getClass());
}

From source file:org.apache.synapse.util.jaxp.DOOMResultBuilder.java

public Result getResult() {
    try {//from   w  ww  . j ava2  s  .c  o  m
        document = new DOOMDocumentBuilderFactory().newDocumentBuilder().newDocument();
    } catch (ParserConfigurationException e) {
        handleException("Unable to create empty DOOM document", e);
    }
    return new DOMResult(document);
}

From source file:org.chiba.adapter.ui.XSLTGenerator.java

/**
 * Creates a JAXP Result from the specified input object.
 * <p/>/*from  w w w.  jav  a  2 s  . co  m*/
 * Follwoing object models are supported:
 * <ul>
 * <li><code>org.w3c.dom.Node</code></li>
 * <li><code>org.xml.sax.ContentHandler</code></li>
 * <li><code>java.io.OutputStream</code></li>
 * <li><code>java.io.Writer</code></li>
 * <li><code>java.io.File</code></li>
 * </ul>
 *
 * @param output the output object.
 * @return a JAXP Result.
 * @throws NullPointerException if the output object is <code>null</code>.
 * @throws IllegalArgumentException if the object model is not supported.
 */
protected Result createOutputResult(Object output) {
    if (output == null) {
        throw new NullPointerException("parameter 'output' must not be null");
    }

    // DOM
    if (output instanceof Node) {
        return new DOMResult((Node) output);
    }

    // SAX
    if (output instanceof ContentHandler) {
        return new SAXResult((ContentHandler) output);
    }

    // Stream
    if (output instanceof OutputStream) {
        return new StreamResult((OutputStream) output);
    }
    if (output instanceof Writer) {
        return new StreamResult((Writer) output);
    }
    if (output instanceof File) {
        return new StreamResult((File) output);
    }

    throw new IllegalArgumentException(output.getClass().getName() + " not supported as output");
}

From source file:org.dhatim.templating.xslt.XslTemplateProcessor.java

private void performTransform(Element element, Element transRes, Document ownerDoc)
        throws TransformerException {
    Transformer transformer = xslTemplate.newTransformer();

    if (element == ownerDoc.getDocumentElement()) {
        transformer.transform(new DOMSource(ownerDoc), new DOMResult(transRes));
    } else {/*from ww w .  j a  va 2  s  .  co m*/
        transformer.transform(new DOMSource(element), new DOMResult(transRes));
    }
}