/** * Write the current XML object to file. * * @param absoluteFileName - Absolute filename to write XML object to * @return String - Directory that file has been written to * @throws Exception */ public String writeXMLFile(String absoluteFileName) throws Exception { if (this.xmlDocument == null) { LOGGER.error("The Document object is null, unable to generate a file!"); return null; } Source source = new DOMSource(this.xmlDocument); FileHandler outputFile = new FileHandler(absoluteFileName, true); try { Result output = new StreamResult(outputFile.getWriteableFile()); TransformerFactory.newInstance().newTransformer().transform(source, output); } catch (TransformerConfigurationException Ex) { LOGGER.error(" Error creating file: " + Ex); } catch (TransformerException Ex) { LOGGER.error(" Error creating file: " + Ex); } outputFile.close(); return outputFile.getAbsoluteFile(); } }
LOGGER.info("File downloaded to '{}'", downloadedFile.getAbsoluteFile()); } catch (Exception Ex) { LOGGER.error("Download failed: {}", Ex); getRequest.releaseConnection(); return downloadedFile.getAbsoluteFile();
/** * Cleans the relevant file and generates a valid XML file ready for processing to Sel 2 java File. * * @param absoluteFilename - name of the file to convert. * @return String - location of the converted file. */ public String convertToXML(String absoluteFilename) throws Exception { FileHandler fromSelIDE = new FileHandler(absoluteFilename); FileHandler toXML = new FileHandler(System.getProperty("java.io.tmpdir") + File.separator + fromSelIDE.getFileName() + ".xml", true); if (fromSelIDE.getFile().isDirectory()) { LOGGER.error("Cannot convert directory {} into a Selenium Test!", fromSelIDE.getFileName()); return null; } //Clean up html so that we can read it as XML properly HtmlCleaner cleaner = new HtmlCleaner(); CleanerProperties XMLPrefs = cleaner.getProperties(); XMLPrefs.setUseEmptyElementTags(true); XMLPrefs.setTranslateSpecialEntities(true); XMLPrefs.setTransResCharsToNCR(true); XMLPrefs.setOmitComments(true); XMLPrefs.setOmitComments(true); XMLPrefs.setOmitDoctypeDeclaration(true); XMLPrefs.setNamespacesAware(false); TagNode tagNode = new HtmlCleaner(XMLPrefs).clean(fromSelIDE.getFile()); new PrettyXmlSerializer(XMLPrefs).writeToStream(tagNode, toXML.getWritableFileOutputStream(), "utf-8"); toXML.close(); return toXML.getAbsoluteFile(); }