List of usage examples for javax.xml.transform.dom DOMResult getNode
public Node getNode()
From source file:it.cnr.icar.eric.server.common.Utility.java
public org.w3c.dom.Element getSignatureElement(SOAPMessage msg) throws javax.xml.soap.SOAPException, javax.xml.transform.TransformerException { org.w3c.dom.Element sigElement = null; javax.xml.transform.Transformer xFormer = javax.xml.transform.TransformerFactory.newInstance() .newTransformer();/*from w ww .j av a2s . co m*/ // grab info out of msg javax.xml.soap.SOAPPart msgPart = msg.getSOAPPart(); javax.xml.transform.Source msgSource = msgPart.getContent(); // transform javax.xml.transform.dom.DOMResult domResult = new javax.xml.transform.dom.DOMResult(); xFormer.transform(msgSource, domResult); //root node is the soap:Envelope Node envelopeNode = domResult.getNode(); //now you have the node. the following code strips off the envelope of //the soap message to get to the actual content // Advance to envelope node in case of text nodes preceding it while ((envelopeNode.getLocalName() == null) || (!envelopeNode.getLocalName().equalsIgnoreCase("envelope"))) { envelopeNode = envelopeNode.getFirstChild(); } // Advance to header within envelope node Node headerNode = envelopeNode.getFirstChild(); while ((headerNode.getLocalName() == null) || (!headerNode.getLocalName().equalsIgnoreCase("header"))) { headerNode = headerNode.getNextSibling(); } //System.err.println("headerNode name is: " + headerNode.getLocalName()); // Advance to signature node within header Node sigNode = headerNode.getFirstChild(); if (sigNode == null) { return null; } //System.err.println("sigNode: " + sigNode); while ((sigNode.getLocalName() == null) || (!sigNode.getLocalName().equalsIgnoreCase("signature"))) { sigNode = sigNode.getNextSibling(); if (sigNode == null) { return null; } } //Desired Signature element may be inside a SOAP-SEC signature element if (!sigNode.getNamespaceURI().equals("http://www.w3.org/2000/09/xmldsig#")) { sigNode = sigNode.getFirstChild(); while ((sigNode.getLocalName() == null) || (!sigNode.getLocalName().equalsIgnoreCase("signature"))) { sigNode = sigNode.getNextSibling(); } } if (sigNode.getNamespaceURI().equals("http://www.w3.org/2000/09/xmldsig#")) { if (sigNode instanceof org.w3c.dom.Element) { sigElement = (org.w3c.dom.Element) sigNode; } } return sigElement; }
From source file:de.betterform.agent.web.WebProcessor.java
private void doIncludes() { try {/*from ww w . ja v a 2s .co m*/ Node input = getXForms(); String xsltPath = RESOURCE_DIR + "xslt/"; URI styleURI = new File(WebFactory.getRealPath(xsltPath, getContext())).toURI() .resolve(new URI("include.xsl")); XSLTGenerator xsltGenerator = WebFactory.setupTransformer(styleURI, getContext()); String baseURI = getBaseURI(); String uri = baseURI.substring(0, baseURI.lastIndexOf("/") + 1); xsltGenerator.setParameter("root", uri); DOMResult result = new DOMResult(); DOMSource source = new DOMSource(input); xsltGenerator.setInput(source); xsltGenerator.setOutput(result); xsltGenerator.generate(); setXForms(result.getNode()); } catch (XFormsException e) { e.printStackTrace(); } catch (URISyntaxException e) { e.printStackTrace(); } }
From source file:fr.gouv.finances.dgfip.xemelios.importers.DefaultImporter.java
/** * Importe le fichier specifie.// ww w .j a v a 2s .c om * * @param f Le fichier a importer * @see * fr.gouv.finances.cp.xemelios.importers.EtatImporteur#importe(java.io.File) */ @Override protected FileInfo importFile(File f) throws Exception { logger.debug("generating " + f.getAbsolutePath()); getImpSvcProvider().startLongWait(); String fileEncoding = getFileEncoding(f); String xmlVersion = getFileXmlVersion(f); File tmpDir = getTmpDir(); File fHeader = File.createTempFile("header-", "", tmpDir); File fRef = File.createTempFile("ref-", "", tmpDir); File fFooter = File.createTempFile("footer-", "", tmpDir); XmlSplitter xs = splitFile(fHeader, fRef, fFooter, tmpDir, f, fileEncoding); getImpSvcProvider().endLongWait(); Pair collectivite = new Pair(); Pair codeBudget = new Pair(); //--------- check collectivite ------------- if (col == null) { collectivite = xs.getCollectivite(); if (collectivite != null && collectivite.isFull()) { // on a rcupr la collectivit getImpSvcProvider().setCollectivite(collectivite); } else if (getImpSvcProvider().getCollectivite() != null && getImpSvcProvider().getCollectivite().isFull()) { // on connait la collectivit collectivite = getImpSvcProvider().getCollectivite(); } else { // ici on demande entrer les infos sur la collectivits try { collectivite = getImpSvcProvider().getCollectivite(dm, f.getName(), collectivite); } catch (ToolException e) { removeTempDir(); if (e.getErrorCode() == ToolException.ERROR_INTERRUPTED) { getImpSvcProvider().displayMessage(e.getMessage(), ImportServiceProvider.MSG_TYPE_INFORMATION); return null; } else { throw e; } } } col = collectivite; } else { // collectivit "par dfaut" collectivite = col; } //--------- check budget ------------- if (bdg == null) { codeBudget = xs.getBudget(); if (codeBudget != null && codeBudget.isFull()) { // on a rcupr le budget getImpSvcProvider().setBudget(codeBudget); } else if (getImpSvcProvider().getBudget() != null && getImpSvcProvider().getBudget().isFull()) { // on connait le budget codeBudget = getImpSvcProvider().getBudget(); } else { // ici on demande entrer les infos sur le budget try { codeBudget = getImpSvcProvider().getBudget(dm, collectivite, f.getName(), codeBudget); } catch (ToolException e) { removeTempDir(); if (e.getErrorCode() == ToolException.ERROR_INTERRUPTED) { getImpSvcProvider().displayMessage(e.getMessage(), ImportServiceProvider.MSG_TYPE_INFORMATION); return null; } else { throw e; } } } bdg = codeBudget; } else { // budget "par dfaut" codeBudget = bdg; } //--------------------------------------------------- ArrayList<File> dataFiles = new ArrayList<File>(xs.getDataFiles()); String header = FileUtils.readTextFile(fHeader, fileEncoding); String footer = FileUtils.readTextFile(fFooter, fileEncoding); String ref = FileUtils.readTextFile(fRef, fileEncoding); int docCount = 1; DocumentBuilder db = dbf.newDocumentBuilder(); // load documents TPersistenceConfig tpc = DataLayerManager.getImplementation().getPersistenceConfig(dm, getUser()); if (tpc == null) { throw new RuntimeException("pas de configuration de persistence trouve pour " + dm.getId() + " dans " + dm.getBaseDirectory()); } TLayer layer = tpc.getLayer(DataLayerManager.getImplementation().getLayerName()); if (layer == null) { throw new RuntimeException("pas de persistence trouve pour ce moteur de persistence (" + DataLayerManager.getImplementation().getLayerName() + ") pour " + dm.getId() + " dans " + dm.getBaseDirectory()); } TDocument pc = layer.getDocument(dm.getId()); // check if document exists, and if so, if we must remove it if (DataLayerManager.getImplementation().isDocumentExists(dm, codeBudget, collectivite, f.getName(), user)) { boolean shouldImport = false; try { if (OVERWRITE_RULE_DEFAULT.equals(getOverwriteRule())) { shouldImport = getOverwrite(f.getName()); } else if (OVERWRITE_RULE_ALWAYS.equals(getOverwriteRule())) { shouldImport = true; } else if (OVERWRITE_RULE_NEVER.equals(getOverwriteRule())) { shouldImport = false; } else if (OVERWRITE_RULE_ASK.equals(getOverwriteRule())) { shouldImport = getOverwrite(f.getName()); } if (shouldImport) { logger.debug("importing"); // this can be very long, display the infinite waiter getImpSvcProvider().startLongWait(); long startDelete = System.currentTimeMillis(); DataLayerManager.getImplementation().removeDocument(dm, codeBudget, collectivite, f.getName(), user); importTimingOS.append(f.getName()).append(";;DEL;").append(Long.toString(startDelete)) .append(";").append(Long.toString(System.currentTimeMillis())); importTimingOS.println(); getImpSvcProvider().endLongWait(); } else { logger.debug("skipping"); return new FileInfo(); } } catch (DataAccessException daEx) { logger.error("DataAccessException while removing:", daEx.getCause()); daEx.getCause().printStackTrace(); throw daEx; } catch (DataConfigurationException dcEx) { logger.error("DataConfigurationException while removing:", dcEx.getCause()); dcEx.getCause().printStackTrace(); } catch (Exception ex) { // si exception ici, l'utilisateur veut annuler logger.error(ex); ex.printStackTrace(); removeTempDir(); return null; } } long startBC = System.currentTimeMillis(); DataLayerManager.getImplementation().registerBudgetCollectivite(dm, codeBudget, collectivite, xs.getParentcollectivites(), f.getName(), getArchiveName(), user); importTimingOS.append(f.getName()).append(";;BC;").append(Long.toString(startBC)).append(";") .append(Long.toString(startBC = System.currentTimeMillis())); importTimingOS.println(); DataLayerManager.getImplementation().saveSpecialKeys(dm, codeBudget, collectivite, f.getName(), getArchiveName(), xs.getSpecialKey1(), xs.getSpecialKey2(), xs.getSpecialKey3(), user); importTimingOS.append(f.getName()).append(";;SK;").append(Long.toString(startBC)).append(";") .append(Long.toString(System.currentTimeMillis())); importTimingOS.println(); // import du repository boolean shouldDelete = !"true" .equals(applicationProperties.getProperty(Constants.SYS_PROP_IMPORT_AVOID_DELETE)); if (!isCancelled()) { StringBuffer fullText = new StringBuffer(); fullText.append("<?xml version=\"").append(xmlVersion).append("\" encoding=\"").append(fileEncoding) .append("\" ?>"); fullText.append(header).append(ref).append(footer); Document doc = db.parse(new ByteArrayInputStream(fullText.toString().getBytes(fileEncoding))); if (pc.getRepositoryImportXsltFile() != null && pc.getRepositoryImportXsltFile().length() > 0) { Document doc2 = null; File xslNomencl = new File(new File(dm.getBaseDirectory()), pc.getRepositoryImportXsltFile()); TransformerFactory tf = FactoryProvider.getTransformerFactory(); Transformer trans = tf.newTransformer(new StreamSource(xslNomencl)); DOMResult result = new DOMResult(); DOMSource source = new DOMSource(doc); trans.transform(source, result); doc2 = (Document) result.getNode(); if (doc2 != null) { doc = doc2; } } DataLayerManager.getImplementation().saveRepository(dm, collectivite, doc, xs.getReferenceNomenclature(), user); } else { logger.debug("cancelled"); } // DEBUT for (int fileCount = 0; fileCount < dataFiles.size(); fileCount++) { if (isCancelled()) { break; } File df = dataFiles.get(fileCount); final int progress = (int) ((fileCount + 1) * 100.0 / dataFiles.size()); processTempFile(df, fileEncoding, xmlVersion, header, footer, pc, collectivite, codeBudget, f, docCount, shouldDelete, progress); docCount++; } // FIN importTimingOS.append(f.getName()).append(";;REF;;").append(Long.toString(System.currentTimeMillis())); importTimingOS.println(); if (shouldDelete) { fHeader.delete(); fRef.delete(); fFooter.delete(); removeTempDir(); } return xs.getFileInfo(); }
From source file:ambit.data.qmrf.QMRFObject.java
protected void write(Document doc, Writer out) throws Exception { Source source;//w w w . j a va 2 s . c o m try { DOMResult result = transform_help(doc, false); Document newdoc = (Document) result.getNode(); newdoc.normalize(); source = new DOMSource(newdoc); } catch (Exception x) { source = new DOMSource(doc); } Transformer xformer = TransformerFactory.newInstance().newTransformer(); xformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, dtdSchema); xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "qmrf.dtd"); xformer.setOutputProperty(OutputKeys.INDENT, "Yes"); xformer.setOutputProperty(OutputKeys.STANDALONE, "No"); Result result = new StreamResult(out); xformer.transform(source, result); out.flush(); setNotModified(); fireAmbitObjectEvent(); }
From source file:ambit.data.qmrf.QMRFObject.java
public void export2PDF(InputStream xsltfo, OutputStream pdf) throws Exception { Document doc = buildDocument(); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document xslt = builder.parse(xsltfo); DOMResult result = new DOMResult(); transform(new DOMSource(doc), new DOMSource(xslt), result); Document foDom = (Document) result.getNode(); convertDOM2PDF(foDom, pdf);//ww w.j a v a 2s . com }
From source file:com.evolveum.midpoint.common.validator.Validator.java
public Node validateSchema(Element objectDoc, OperationResult objectResult) { OperationResult result = objectResult.createSubresult(Validator.class.getName() + ".validateSchema"); DOMResult validationResult = new DOMResult(); try {// w w w . jav a 2 s . c om xsdValidator.validate(new DOMSource(objectDoc), validationResult); } catch (SAXException e) { result.recordFatalError("Validation error: " + e.getMessage(), e); objectResult.computeStatus("Validation error: " + e.getMessage()); return null; } catch (IOException e) { result.recordFatalError("IO error during validation: " + e.getMessage(), e); objectResult.computeStatus("IO error during validation: " + e.getMessage()); return null; } result.recordSuccess(); return validationResult.getNode(); }
From source file:com.netspective.sparx.util.xml.XmlSource.java
/** * Given the current xmlDoc that was already read in, send it through the transformation stylesheet and assign * the value back to xmlDoc./*from www. j a v a2 s. c o m*/ */ public void preProcess(File styleSheet) { try { TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(new StreamSource(styleSheet)); DOMResult result = new javax.xml.transform.dom.DOMResult(); transformer.transform(new DOMSource(xmlDoc), result); xmlDoc = (Document) result.getNode(); } catch (Exception e) { //StringWriter stack = new StringWriter(); //e.printStackTrace(new PrintWriter(stack)); addError("Failed to pre-process using style-sheet " + styleSheet.getAbsolutePath() + ": " + e.toString()); } }
From source file:ambit.data.qmrf.QMRFObject.java
public void transform_and_read(Reader in, boolean appendHelp) throws Exception { DOMResult result = new DOMResult(); String filename = "ambit/data/qmrf/qmrf_insert_help.xsl"; if (!appendHelp) filename = "ambit/data/qmrf/qmrf_delete_help.xsl"; InputStream xslt = this.getClass().getClassLoader().getResourceAsStream(filename); xsltTransform(in, xslt, result);//from w ww .j a v a2 s . c om xslt.close(); Document doc = (Document) result.getNode(); doc.normalize(); fromXML(doc.getDocumentElement()); setNotModified(); fireAmbitObjectEvent(); }
From source file:org.ambraproject.article.service.XslIngestArchiveProcessor.java
/** * Run the zip file through the xsl stylesheet * * @param zip the zip archive containing the items to ingest * @param zipInfo the document describing the zip archive (adheres to zip.dtd) * @param articleXml the stylesheet to run on <var>zipInfo</var>; this is the main script * @param doiUrlPrefix DOI URL prefix//w w w .jav a 2 s . com * @return a document describing the fedora objects to create (must adhere to fedora.dtd) * @throws javax.xml.transform.TransformerException * if an error occurs during the processing */ private Document transformZip(ZipFile zip, String zipInfo, Document articleXml, String doiUrlPrefix) throws TransformerException, URISyntaxException { Transformer t = getTranslet(articleXml); t.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); t.setURIResolver(new ZipURIResolver(zip)); // override the doi url prefix if one is specified in the config if (doiUrlPrefix != null) t.setParameter("doi-url-prefix", doiUrlPrefix); /* * Note: it would be preferable (and correct according to latest JAXP specs) to use * t.setErrorListener(), but Saxon does not forward <xls:message>'s to the error listener. * Hence we need to use Saxon's API's in order to get at those messages. */ final StringWriter msgs = new StringWriter(); MessageWarner em = new MessageWarner(); ((Controller) t).setMessageEmitter(em); t.setErrorListener(new ErrorListener() { public void warning(TransformerException te) { log.warn("Warning received while processing zip", te); } public void error(TransformerException te) { log.warn("Error received while processing zip", te); msgs.write(te.getMessageAndLocation() + '\n'); } public void fatalError(TransformerException te) { log.warn("Fatal error received while processing zip", te); msgs.write(te.getMessageAndLocation() + '\n'); } }); Source inp = new StreamSource(new StringReader(zipInfo), "zip:/"); DOMResult res = new DOMResult(); try { t.transform(inp, res); } catch (TransformerException te) { if (msgs.getBuffer().length() > 0) { log.error(msgs.getBuffer().toString()); throw new TransformerException(msgs.toString(), te); } else throw te; } if (msgs.getBuffer().length() > 0) throw new TransformerException(msgs.toString()); return (Document) res.getNode(); }
From source file:es.urjc.mctwp.image.impl.dicom.DicomImagePlugin.java
/** * Obtains XML node representation of a singleImage * /*from w w w .jav a 2 s . c o m*/ * @param single * @return * @throws ImageException */ private Node toXml(SingleImage single) throws ImageException { DicomInputStream dis = null; TransformerHandler th = null; DOMResult result = null; File source = null; try { // Prepare XSLT transformer result = new DOMResult(); th = getTransformerHandler(); th.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes"); th.setResult(result); // Get writer and set image pixel data excluded from XML final SAXWriter writer = new SAXWriter(th, null); writer.setExclude(new int[] { Tag.PixelData }); // Parse and convert to XML source = single.getContent(); dis = new DicomInputStream(source); dis.setHandler(writer); // dis.readDicomObject(new BasicDicomObject(), -1); dis.readDicomObject(); } catch (Exception e) { logger.error(e.getMessage()); throw new ImageException(e); } finally { try { dis.close(); } catch (IOException ioe) { logger.error(ioe.getMessage()); } } return result.getNode(); }