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:org.directwebremoting.drapgen.generate.gi.GiType.java

/**
 * @param preprocXslt The preprocessor XSLT
 *
 *//*from w ww . j  ava 2 s . c  om*/
public void cloneForOverloading(String preprocXslt) {
    try {
        // Read the XSLT
        if (preprocessTemplate == null) {
            Source xslSource = new StreamSource(new File(preprocXslt));
            preprocessTemplate = factory.newTemplates(xslSource);
        }

        Source xmlSource = new DOMSource(document);

        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        Document newDocument = builder.newDocument();
        Result result = new DOMResult(newDocument);

        Transformer preprocessor = preprocessTemplate.newTransformer();
        preprocessor.transform(xmlSource, result);
        document = newDocument;
    } catch (TransformerException ex) {
        SourceLocator locator = ex.getLocator();
        log.warn("Line: " + locator.getLineNumber() + ", Column: " + locator.getColumnNumber());
        log.warn("PublicId: " + locator.getPublicId());
        log.warn("SystemId: " + locator.getSystemId());
        log.error("Failed to transform", ex);
    } catch (Exception ex) {
        log.warn("Processing Error for " + xmlFile.getAbsolutePath(), ex);
    }
}

From source file:org.freebxml.omar.common.BindingUtility.java

public SOAPElement getSOAPElementFromBindingObject(Object obj) throws JAXRException {
    SOAPElement soapElem = null;//  w  w w .ja  v a  2s. c  om

    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.jbpm.bpel.xml.BpelReader.java

protected void read(BpelProcessDefinition processDefinition, Element processElem,
        ProcessWsdlLocator wsdlLocator) {
    // see if the bpel document requires updating
    if (BpelConstants.NS_BPEL_1_1.equals(processElem.getNamespaceURI())) {
        try {/*ww  w . jav a2s .c o  m*/
            // create bpel upgrader
            Transformer bpelUpgrader = getBpelUpgradeTemplates().newTransformer();

            // install our problem handler as transformer's error listener
            bpelUpgrader.setErrorListener(problemHandler.asTraxErrorListener());

            // upgrade into dom document
            Document resultDocument = XmlUtil.createDocument();
            bpelUpgrader.transform(new DOMSource(processElem.getOwnerDocument()),
                    new DOMResult(resultDocument));
            processElem = resultDocument.getDocumentElement();

            log.debug("upgraded bpel document: " + processDefinition.getLocation());
        } catch (TransformerException e) {
            Problem problem = new Problem(Problem.LEVEL_ERROR, "bpel upgrade failed", e);
            problem.setResource(processDefinition.getLocation());
            problemHandler.add(problem);
        }

        // halt on transform errors
        if (problemHandler.getProblemCount() > 0)
            return;
    }

    // read attributes in the process element
    readProcessAttributes(processElem, processDefinition);

    // read imported documents
    ImportDefinition importDefinition = processDefinition.getImportDefinition();
    readImports(processElem, importDefinition, wsdlLocator);

    // halt on import parse errors
    if (problemHandler.getProblemCount() > 0)
        return;

    try {
        // registration gets the query language from the process definition
        registerPropertyAliases(importDefinition);

        // finally read the global scope
        readScope(processElem, processDefinition.getGlobalScope());
        log.debug("read bpel document: " + processDefinition.getLocation());
    } catch (BpelException e) {
        problemHandler.add(new Problem(Problem.LEVEL_ERROR, "bpel process is invalid", e));
    }
}

From source file:org.jzkit.search.util.RecordConversion.FragmentTransformerService.java

public DOMResult createEmptyDOMResult() {
    return new DOMResult(docBuilder.newDocument());
}

From source file:org.orbeon.oxf.xforms.XFormsUtils.java

public static org.w3c.dom.Document htmlStringToDocumentTagSoup(String value, LocationData locationData) {
    final org.w3c.dom.Document document = XMLParsing.createDocument();
    final DOMResult domResult = new DOMResult(document);
    htmlStringToResult(value, locationData, domResult);
    return document;
}

From source file:org.pentaho.di.trans.steps.dom.xslt.DOMXslt.java

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
    meta = (DOMXsltMeta) smi;//  w  w w. ja  v a  2  s  .c  om
    data = (DOMXsltData) sdi;

    Object[] row = getRow();

    if (row == null) { // no more input to be expected...
        setOutputDone();
        return false;
    }
    if (first) {
        first = false;
        data.outputRowMeta = getInputRowMeta().clone();
        meta.getFields(data.outputRowMeta, getStepname(), null, null, this, repository, metaStore);

        // Check if The result field is given
        if (Const.isEmpty(meta.getResultfieldname())) {
            // Result Field is missing !
            logError(BaseMessages.getString(PKG, "Xslt.Log.ErrorResultFieldMissing"));
            throw new KettleStepException(
                    BaseMessages.getString(PKG, "Xslt.Exception.ErrorResultFieldMissing"));
        }

        // Check if The XML field is given
        if (Const.isEmpty(meta.getFieldname())) {
            // Result Field is missing !
            logError(BaseMessages.getString(PKG, "Xslt.Exception.ErrorXMLFieldMissing"));
            throw new KettleStepException(BaseMessages.getString(PKG, "Xslt.Exception.ErrorXMLFieldMissing"));
        }

        // Try to get XML Field index
        data.fieldposition = getInputRowMeta().indexOfValue(meta.getFieldname());
        // Let's check the Field
        if (data.fieldposition < 0) {
            // The field is unreachable !
            logError(BaseMessages.getString(PKG, "Xslt.Log.ErrorFindingField") + "[" + meta.getFieldname()
                    + "]");
            throw new KettleStepException(
                    BaseMessages.getString(PKG, "Xslt.Exception.CouldnotFindField", meta.getFieldname()));
        }

        // Check if the XSL Filename is contained in a column
        if (meta.useXSLField()) {
            if (Const.isEmpty(meta.getXSLFileField())) {
                // The field is missing
                // Result field is missing !
                logError(BaseMessages.getString(PKG, "Xslt.Log.ErrorXSLFileFieldMissing"));
                throw new KettleStepException(
                        BaseMessages.getString(PKG, "Xslt.Exception.ErrorXSLFileFieldMissing"));
            }

            // Try to get Field index
            data.fielxslfiledposition = getInputRowMeta().indexOfValue(meta.getXSLFileField());

            // Let's check the Field
            if (data.fielxslfiledposition < 0) {
                // The field is unreachable !
                logError(BaseMessages.getString(PKG, "Xslt.Log.ErrorXSLFileFieldFinding") + "["
                        + meta.getXSLFileField() + "]");
                throw new KettleStepException(BaseMessages.getString(PKG,
                        "Xslt.Exception.ErrorXSLFileFieldFinding", meta.getXSLFileField()));
            }

        } else {
            if (Const.isEmpty(meta.getXslFilename())) {
                logError(BaseMessages.getString(PKG, "Xslt.Log.ErrorXSLFile"));
                throw new KettleStepException(BaseMessages.getString(PKG, "Xslt.Exception.ErrorXSLFile"));
            }

            // Check if XSL File exists!
            data.xslfilename = environmentSubstitute(meta.getXslFilename());
            FileObject file = null;
            try {
                file = KettleVFS.getFileObject(data.xslfilename);
                if (!file.exists()) {
                    logError(BaseMessages.getString(PKG, "Xslt.Log.ErrorXSLFileNotExists", data.xslfilename));
                    throw new KettleStepException(BaseMessages.getString(PKG,
                            "Xslt.Exception.ErrorXSLFileNotExists", data.xslfilename));
                }
                if (file.getType() != FileType.FILE) {
                    logError(BaseMessages.getString(PKG, "Xslt.Log.ErrorXSLNotAFile", data.xslfilename));
                    throw new KettleStepException(
                            BaseMessages.getString(PKG, "Xslt.Exception.ErrorXSLNotAFile", data.xslfilename));
                }
            } catch (Exception e) {
                throw new KettleStepException(e);
            } finally {
                try {
                    if (file != null) {
                        file.close();
                    }
                } catch (Exception e) { /* Ignore */
                }
            }
        }

        // Check output parameters
        int nrOutputProps = meta.getOutputPropertyName() == null ? 0 : meta.getOutputPropertyName().length;
        if (nrOutputProps > 0) {
            data.outputProperties = new Properties();
            for (int i = 0; i < nrOutputProps; i++) {
                data.outputProperties.put(meta.getOutputPropertyName()[i],
                        environmentSubstitute(meta.getOutputPropertyValue()[i]));
            }
            data.setOutputProperties = true;
        }

        // Check parameters
        data.nrParams = meta.getParameterField() == null ? 0 : meta.getParameterField().length;
        if (data.nrParams > 0) {
            data.indexOfParams = new int[data.nrParams];
            data.nameOfParams = new String[data.nrParams];
            for (int i = 0; i < data.nrParams; i++) {
                String name = environmentSubstitute(meta.getParameterName()[i]);
                String field = environmentSubstitute(meta.getParameterField()[i]);
                if (Const.isEmpty(field)) {
                    throw new KettleStepException(
                            BaseMessages.getString(PKG, "Xslt.Exception.ParameterFieldMissing", name, i));
                }
                data.indexOfParams[i] = getInputRowMeta().indexOfValue(field);
                if (data.indexOfParams[i] < 0) {
                    throw new KettleStepException(
                            BaseMessages.getString(PKG, "Xslt.Exception.ParameterFieldNotFound", name));
                }
                data.nameOfParams[i] = name;
            }
            data.useParameters = true;
        }

        data.factory = TransformerFactory.newInstance();

        if (meta.getXSLFactory().equals("SAXON")) {
            // Set the TransformerFactory to the SAXON implementation.
            data.factory = new net.sf.saxon.TransformerFactoryImpl();
        }

        try {
            data.builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
            throw new KettleStepException(e);
        }

    } // end if first

    // Get the field value
    Document xmlValue = (Document) row[data.fieldposition];
    if (meta.useXSLField()) {
        // Get the value
        data.xslfilename = getInputRowMeta().getString(row, data.fielxslfiledposition);
        if (log.isDetailed()) {
            logDetailed(BaseMessages.getString(PKG, "Xslt.Log.XslfileNameFromFied", data.xslfilename,
                    meta.getXSLFileField()));
        }
    }

    try {

        if (log.isDetailed()) {
            if (meta.isXSLFieldIsAFile()) {
                logDetailed(BaseMessages.getString(PKG, "Xslt.Log.Filexsl") + data.xslfilename);
            } else {
                logDetailed(BaseMessages.getString(PKG, "Xslt.Log.XslStream", data.xslfilename));
            }
        }

        // Get the template from the cache
        Transformer transformer = data.getTemplate(data.xslfilename, data.xslIsAfile);

        // Do we need to set output properties?
        if (data.setOutputProperties) {
            transformer.setOutputProperties(data.outputProperties);
        }

        // Do we need to pass parameters?
        if (data.useParameters) {
            for (int i = 0; i < data.nrParams; i++) {
                transformer.setParameter(data.nameOfParams[i], row[data.indexOfParams[i]]);
            }
        }

        Source source = new DOMSource(xmlValue);
        // Prepare output stream

        Document doc = data.builder.newDocument();

        // transform xml source
        DOMResult result = new DOMResult(doc);

        transformer.transform(source, result);

        //By default the DOMResult object creates a Document node to hold the output:
        Document outputDocument = (Document) result.getNode();

        if (log.isDetailed()) {
            logDetailed(BaseMessages.getString(PKG, "Xslt.Log.FileResult"));
            //logDetailed( xmlString );
        }
        Object[] outputRowData = RowDataUtil.addValueData(row, getInputRowMeta().size(), outputDocument);

        if (log.isRowLevel()) {
            logRowlevel(
                    BaseMessages.getString(PKG, "Xslt.Log.ReadRow") + " " + getInputRowMeta().getString(row));
        }

        // add new values to the row.
        putRow(data.outputRowMeta, outputRowData); // copy row to output rowset(s);

    } catch (Exception e) {
        String errorMessage = e.getMessage();
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        DefaultErrorHandler.printLocation(pw, e);
        pw.close();
        errorMessage = sw.toString() + "\n" + errorMessage;

        if (getStepMeta().isDoingErrorHandling()) {
            // Simply add this row to the error row
            putError(getInputRowMeta(), row, 1, errorMessage, meta.getResultfieldname(), "XSLT01");
        } else {
            logError(BaseMessages.getString(PKG, "Xslt.ErrorProcesing" + " : " + errorMessage));
            throw new KettleStepException(BaseMessages.getString(PKG, "Xslt.ErrorProcesing"), e);
        }
    }

    return true;
}

From source file:org.sakaiproject.tool.assessment.qti.util.XmlUtil.java

/**
 * Transform one document into another//from w  w w  . ja v  a  2s . c o m
 *
 * @param document source Document
 * @param stylesheet XSLT Document
 *
 * @return transformed Document
 */
public static Document transformDocument(Document document, Document stylesheet) {
    if (log.isDebugEnabled()) {
        log.debug("Document transformDocument(Document " + document + ", Document " + stylesheet + ")");
    }

    Document transformedDoc = createDocument();
    DOMSource docSource = new DOMSource(document);
    DOMResult docResult = new DOMResult(transformedDoc);
    Transformer transformer = createTransformer(stylesheet);
    transform(transformer, docSource, docResult);

    //    log.debug("INPUT DOCUMENT: \n" + (document));
    //    log.debug("TRANSFORM DOCUMENT: \n" + getDOMString(stylesheet));
    //    log.debug("OUTPUT DOCUMENT: \n" + getDOMString(transformedDoc));

    return transformedDoc;
}

From source file:org.sakaiproject.tool.assessment.qti.util.XmlUtil.java

public static Document transformDocument(Document document, Transformer transformer) {

    if (log.isDebugEnabled())
        log.debug("Document transformDocument(Document " + document + ", Trasformer " + transformer);

    Document transformedDoc = createDocument();
    DOMSource docSource = new DOMSource(document);
    DOMResult docResult = new DOMResult(transformedDoc);
    transform(transformer, docSource, docResult);

    return transformedDoc;
}

From source file:org.sakaiproject.tool.assessment.qti.util.XmlUtil.java

public static void transformNode(Node source, Node result, Transformer transformer) {
    if (log.isDebugEnabled()) {
        log.debug("transformNode(Node " + source + ", Node " + result + ", Transformer ," + transformer);
    }//from   w w w. j av  a 2s .  c o  m
    DOMSource domSource = new DOMSource(source);
    DOMResult domResult = new DOMResult(result);
    transform(transformer, domSource, domResult);
}

From source file:org.sakaiproject.tool.help.RestContentProvider.java

/**
 * transform document/*  w  w  w  .  j a  va2 s  .  c  o m*/
 * @param document
 * @param stylesheet
 * @return
 */
private static Document transformDocument(Document document, Document stylesheet) {
    if (LOG.isDebugEnabled()) {
        LOG.debug("transformDocument(Document " + document + ", Document " + stylesheet + ")");
    }

    Document transformedDoc = createDocument();
    DOMSource docSource = new DOMSource(document);
    DOMResult docResult = new DOMResult(transformedDoc);
    Transformer transformer = createTransformer(stylesheet);
    transform(transformer, docSource, docResult);

    return transformedDoc;
}