List of usage examples for javax.xml.transform.dom DOMResult getNode
public Node getNode()
From source file:de.betterform.xml.xforms.model.submission.Submission.java
private void submitReplaceEmbedXForms(Map response) throws XFormsException { // check for targetid String targetid = getXFormsAttribute(TARGETID_ATTRIBUTE); String resource = getResource(); Map eventInfo = new HashMap(); String error = null;//from w ww . jav a2 s. com if (targetid == null) { error = "targetId"; } else if (resource == null) { error = "resource"; } if (error != null && error.length() > 0) { eventInfo.put(XFormsConstants.ERROR_TYPE, "no " + error + "defined for submission resource"); this.container.dispatch(this.target, XFormsEventNames.SUBMIT_ERROR, eventInfo); return; } Document result = getResponseAsDocument(response); Node embedElement = result.getDocumentElement(); if (resource.indexOf("#") != -1) { // detected a fragment so extract that from our result Document String fragmentid = resource.substring(resource.indexOf("#") + 1); if (fragmentid.indexOf("?") != -1) { fragmentid = fragmentid.substring(0, fragmentid.indexOf("?")); } embedElement = DOMUtil.getById(result, fragmentid); } Element embeddedNode = null; if (LOGGER.isDebugEnabled()) { LOGGER.debug("get target element for id: " + targetid); } Element targetElem = this.container.getElementById(targetid); DOMResult domResult = new DOMResult(); //Test if targetElem exist. if (targetElem != null) { // destroy existing embedded form within targetNode if (targetElem.hasChildNodes()) { // destroyembeddedModels(targetElem); Initializer.disposeUIElements(targetElem); } if (LOGGER.isDebugEnabled()) { LOGGER.debug("destroyed any existing ui elements for target elem"); } // import referenced embedded form into host document embeddedNode = (Element) this.container.getDocument().importNode(embedElement, true); //import namespaces NamespaceResolver.applyNamespaces(targetElem.getOwnerDocument().getDocumentElement(), (Element) embeddedNode); // keep original targetElem id within hostdoc embeddedNode.setAttributeNS(null, "id", targetElem.getAttributeNS(null, "id")); //copy all Attributes that might have been on original mountPoint to embedded node DOMUtil.copyAttributes(targetElem, embeddedNode, null); targetElem.getParentNode().replaceChild(embeddedNode, targetElem); //create model for it Initializer.initializeUIElements(model, embeddedNode, null, null); try { CachingTransformerService transformerService = new CachingTransformerService( new ClasspathResourceResolver("unused")); // TODO: MUST BE GENERIFIED USING USERAGENT MECHANISM //TODO: check exploded mode!!! String path = getClass().getResource("/META-INF/resources/xslt/xhtml.xsl").getPath(); //String xslFilePath = "file:" + path; transformerService.getTransformer(new URI(path)); XSLTGenerator generator = new XSLTGenerator(); generator.setTransformerService(transformerService); generator.setStylesheetURI(new URI(path)); generator.setInput(embeddedNode); generator.setOutput(domResult); generator.generate(); } catch (TransformerException e) { throw new XFormsException( "Transformation error while executing 'Submission.submitReplaceEmbedXForms'", e); } catch (URISyntaxException e) { throw new XFormsException( "Malformed URI throwed URISyntaxException in 'Submission.submitReplaceEmbedXForms'", e); } } // Map eventInfo = constructEventInfo(response); OutputStream outputStream = new ByteArrayOutputStream(); try { DOMUtil.prettyPrintDOM(domResult.getNode(), outputStream); } catch (TransformerException e) { throw new XFormsException(e); } eventInfo.put(EMBEDNODE, outputStream.toString()); eventInfo.put("embedTarget", targetid); eventInfo.put("embedXForms", true); // dispatch xforms-submit-done this.container.dispatch(this.target, XFormsEventNames.SUBMIT_DONE, eventInfo); }
From source file:nl.nn.adapterframework.parameters.Parameter.java
private Object transform(Source xmlSource, ParameterResolutionContext prc) throws ParameterException, TransformerException, IOException { TransformerPool pool = getTransformerPool(); if (TYPE_NODE.equals(getType()) || TYPE_DOMDOC.equals(getType())) { DOMResult transformResult = new DOMResult(); pool.transform(xmlSource, transformResult, prc.getValueMap(paramList)); Node result = transformResult.getNode(); if (result != null && TYPE_NODE.equals(getType())) { result = result.getFirstChild(); }/*from w w w . ja v a 2s .com*/ if (log.isDebugEnabled()) { if (result != null) log.debug("Returning Node result [" + result.getClass().getName() + "][" + result + "]: " + ToStringBuilder.reflectionToString(result)); } return result; } else { return pool.transform(xmlSource, prc.getValueMap(paramList)); } }
From source file:org.apache.bsf.engines.xslt.XSLTEngine.java
/** * Evaluate an expression. In this case, an expression is assumed * to be a stylesheet of the template style (see the XSLT spec). *//*from www . j a v a 2s . c o m*/ public Object eval(String source, int lineNo, int columnNo, Object oscript) throws BSFException { // get the style base URI (the place from where Xerces XSLT will // look for imported/included files and referenced docs): if a // bean named "xslt:styleBaseURI" is registered, then cvt it // to a string and use that. Otherwise use ".", which means the // base is the directory where the process is running from Object sbObj = mgr.lookupBean("xslt:styleBaseURI"); String styleBaseURI = (sbObj == null) ? "." : sbObj.toString(); // Locate the stylesheet. StreamSource styleSource; styleSource = new StreamSource(new StringReader(oscript.toString())); styleSource.setSystemId(styleBaseURI); try { transformer = tFactory.newTransformer(styleSource); } catch (Exception e) { logger.error("Exception from Xerces XSLT:", e); throw new BSFException(BSFException.REASON_EXECUTION_ERROR, "Exception from Xerces XSLT: " + e, e); } // get the src to work on: if a bean named "xslt:src" is registered // and its a Node, then use it as the source. If its not a Node, then // if its a URL parse it, if not treat it as a file and make a URL and // parse it and go. If no xslt:src is found, use an empty document // (stylesheet is treated as a literal result element stylesheet) Object srcObj = mgr.lookupBean("xslt:src"); Object xis = null; if (srcObj != null) { if (srcObj instanceof Node) { xis = new DOMSource((Node) srcObj); } else { try { String mesg = "as anything"; if (srcObj instanceof Reader) { xis = new StreamSource((Reader) srcObj); mesg = "as a Reader"; } else if (srcObj instanceof File) { xis = new StreamSource((File) srcObj); mesg = "as a file"; } else { String srcObjstr = srcObj.toString(); xis = new StreamSource(new StringReader(srcObjstr)); if (srcObj instanceof URL) { mesg = "as a URL"; } else { ((StreamSource) xis).setPublicId(srcObjstr); mesg = "as an XML string"; } } if (xis == null) { throw new Exception("Unable to get input from '" + srcObj + "' " + mesg); } } catch (Exception e) { throw new BSFException(BSFException.REASON_EXECUTION_ERROR, "BSF:XSLTEngine: unable to get " + "input from '" + srcObj + "' as XML", e); } } } else { // create an empty document - real src must come into the // stylesheet using "doc(...)" [see XSLT spec] or the stylesheet // must be of literal result element type xis = new StreamSource(); } // set all declared beans as parameters. for (int i = 0; i < declaredBeans.size(); i++) { BSFDeclaredBean b = (BSFDeclaredBean) declaredBeans.elementAt(i); transformer.setParameter(b.name, new XObject(b.bean)); } // declare a "bsf" parameter which is the BSF handle so that // the script can do BSF stuff if it wants to transformer.setParameter("bsf", new XObject(new BSFFunctions(mgr, this))); // do it try { DOMResult result = new DOMResult(); transformer.transform((StreamSource) xis, result); return new XSLTResultNode(result.getNode()); } catch (Exception e) { throw new BSFException(BSFException.REASON_EXECUTION_ERROR, "exception while eval'ing XSLT script" + e, e); } }
From source file:org.apache.camel.component.xquery.XQueryBuilder.java
public Node evaluateAsDOM(Exchange exchange) throws Exception { initialize(exchange);//from w w w. j a v a2 s .c om 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 . ja v a2 s .com * @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.falcon.converter.OozieProcessMapper.java
protected void marshalHiveAction(ACTION wfAction, JAXBElement<org.apache.falcon.oozie.hive.ACTION> actionjaxbElement) { try {//from w ww. java 2 s . com 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 {//w w w .java 2s . c o m //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 ww w.j a v a 2s . c o 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);/* ww w . j ava2 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// w w w.java 2 s. c om 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(); }