List of usage examples for org.jsoup.nodes Document appendChild
public Element appendChild(Node child)
From source file:ie.nuim.cs.dri.metadata.WebSearch.java
/** * * @param doi//from ww w . j a v a2s . co m * @param ti * @param au * @param pubYear * @param xmlFile */ public static void createROS(String doi, String ti, String au, String pubYear, String xmlFile) { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = null; try { docBuilder = docFactory.newDocumentBuilder(); } catch (ParserConfigurationException ex) { Logger.getLogger(MetadataExtractor.class.getName()).log(Level.SEVERE, null, ex); } org.w3c.dom.Document rosDoc = docBuilder.newDocument(); org.w3c.dom.Element rootElement = rosDoc.createElement("ROS"); rosDoc.appendChild((rootElement)); org.w3c.dom.Element DOI = rosDoc.createElement("DOI"); org.w3c.dom.Element title = rosDoc.createElement("Title"); org.w3c.dom.Element authors = rosDoc.createElement("Authors"); org.w3c.dom.Element institution = rosDoc.createElement("Institution"); org.w3c.dom.Element year = rosDoc.createElement("Year"); org.w3c.dom.Element publication = rosDoc.createElement("Publication"); org.w3c.dom.Element conference = rosDoc.createElement("Conference"); rootElement.appendChild(DOI); rootElement.appendChild(title); rootElement.appendChild(authors); rootElement.appendChild(institution); rootElement.appendChild(year); rootElement.appendChild(publication); rootElement.appendChild(conference); DOI.appendChild(rosDoc.createTextNode(doi)); title.appendChild(rosDoc.createTextNode(ti)); authors.appendChild(rosDoc.createTextNode(au)); year.appendChild(rosDoc.createTextNode(pubYear)); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(rosDoc); xmlFile = xmlFile.replace(".xml", "MD.xml"); System.out.println("Writing to:\n" + xmlFile); StreamResult result = new StreamResult(new File(xmlFile)); transformer.transform(source, result); //result = new StreamResult(System.out); } catch (TransformerException ex) { Logger.getLogger(MetadataExtractor.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:com.ufukuzun.myth.dialect.bean.Myth.java
private Document parse(String html) { Document document = new Document(""); List<Node> nodes = Parser.parseXmlFragment(html, ""); if (!nodes.isEmpty()) { document.appendChild(nodes.get(0)); }//ww w . ja va 2s .c om return document; }
From source file:org.shareok.data.sagedata.SageSourceDataHandlerImpl.java
/** * Convert the article data to dublin core xml metadata and save the the file * /*w w w. j a v a2 s . c o m*/ * @param journalData : the SageJournalData * @param fileName : the root folder contains all the uploading article data */ public void exportXmlByJournalData(SageJournalData journalData, String outputPath) { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); org.w3c.dom.Document doc = docBuilder.newDocument(); org.w3c.dom.Element rootElement = doc.createElement("dublin_core"); doc.appendChild(rootElement); // Add the type node: org.w3c.dom.Element element = doc.createElement("dcvalue"); element.appendChild(doc.createTextNode(journalData.getType())); rootElement.appendChild(element); Attr attr = doc.createAttribute("element"); attr.setValue("type"); element.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); element.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("none"); element.setAttributeNode(attr); // Add the abstract node: String abs = journalData.getAbstractText(); if (null != abs) { org.w3c.dom.Element elementAbs = doc.createElement("dcvalue"); elementAbs.appendChild(doc.createTextNode(abs)); rootElement.appendChild(elementAbs); attr = doc.createAttribute("element"); attr.setValue("description"); elementAbs.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementAbs.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("abstract"); elementAbs.setAttributeNode(attr); } // Add the language node: String lang = journalData.getLanguage(); if (null != lang) { org.w3c.dom.Element elementLang = doc.createElement("dcvalue"); elementLang.appendChild(doc.createTextNode(lang)); rootElement.appendChild(elementLang); attr = doc.createAttribute("element"); attr.setValue("language"); elementLang.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementLang.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("iso"); elementLang.setAttributeNode(attr); } // Add the title node: String tit = journalData.getTitle(); if (null != tit) { org.w3c.dom.Element elementTitle = doc.createElement("dcvalue"); elementTitle.appendChild(doc.createTextNode(tit)); rootElement.appendChild(elementTitle); attr = doc.createAttribute("element"); attr.setValue("title"); elementTitle.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementTitle.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("none"); elementTitle.setAttributeNode(attr); } // Add the available date node: // Element elementAvailable = doc.createElement("dcvalue"); // elementAvailable.appendChild(doc.createTextNode(getDateAvailable().toString())); // rootElement.appendChild(elementAvailable); // // attr = doc.createAttribute("element"); // attr.setValue("date"); // elementAvailable.setAttributeNode(attr); // // attr = doc.createAttribute("qualifier"); // attr.setValue("available"); // elementAvailable.setAttributeNode(attr); // Add the issued date node: Date issueDate = journalData.getDateIssued(); if (null != issueDate) { SimpleDateFormat format_issuedDate = new SimpleDateFormat("yyyy-MM-dd"); org.w3c.dom.Element elementIssued = doc.createElement("dcvalue"); elementIssued.appendChild(doc.createTextNode(format_issuedDate.format(issueDate))); rootElement.appendChild(elementIssued); attr = doc.createAttribute("element"); attr.setValue("date"); elementIssued.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("issued"); elementIssued.setAttributeNode(attr); } // Add the author nodes: String[] authorSet = journalData.getAuthors(); if (null != authorSet && authorSet.length > 0) { for (String author : authorSet) { org.w3c.dom.Element elementAuthor = doc.createElement("dcvalue"); elementAuthor.appendChild(doc.createTextNode(author)); rootElement.appendChild(elementAuthor); attr = doc.createAttribute("element"); attr.setValue("contributor"); elementAuthor.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("author"); elementAuthor.setAttributeNode(attr); } } // Add the acknowledgements node: String ack = journalData.getAcknowledgements(); if (null != ack) { org.w3c.dom.Element elementAck = doc.createElement("dcvalue"); elementAck.appendChild(doc.createTextNode(ack)); rootElement.appendChild(elementAck); attr = doc.createAttribute("element"); attr.setValue("description"); elementAck.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementAck.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("none"); elementAck.setAttributeNode(attr); } // Add the author contributions node: String contrib = journalData.getAuthorContributions(); if (null != contrib) { org.w3c.dom.Element elementContribution = doc.createElement("dcvalue"); elementContribution.appendChild(doc.createTextNode(contrib)); rootElement.appendChild(elementContribution); attr = doc.createAttribute("element"); attr.setValue("description"); elementContribution.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementContribution.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("none"); elementContribution.setAttributeNode(attr); } // Add the publisher node: String puber = journalData.getPublisher(); if (null != puber) { org.w3c.dom.Element elementPublisher = doc.createElement("dcvalue"); elementPublisher.appendChild(doc.createTextNode(puber)); rootElement.appendChild(elementPublisher); attr = doc.createAttribute("element"); attr.setValue("publisher"); elementPublisher.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("none"); elementPublisher.setAttributeNode(attr); } // Add the citation node: String cit = journalData.getCitation(); if (null != cit) { org.w3c.dom.Element elementCitation = doc.createElement("dcvalue"); elementCitation.appendChild(doc.createTextNode(cit)); rootElement.appendChild(elementCitation); attr = doc.createAttribute("element"); attr.setValue("identifier"); elementCitation.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementCitation.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("citation"); elementCitation.setAttributeNode(attr); } // Add the rights node: String rit = journalData.getRights(); if (null != rit) { org.w3c.dom.Element elementRights = doc.createElement("dcvalue"); elementRights.appendChild(doc.createTextNode(rit)); rootElement.appendChild(elementRights); attr = doc.createAttribute("element"); attr.setValue("rights"); elementRights.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("none"); elementRights.setAttributeNode(attr); } // Add the rights URI node: String ritUri = journalData.getRightsUri(); if (null != ritUri) { org.w3c.dom.Element elementRightsUri = doc.createElement("dcvalue"); elementRightsUri.appendChild(doc.createTextNode(ritUri)); rootElement.appendChild(elementRightsUri); attr = doc.createAttribute("element"); attr.setValue("rights"); elementRightsUri.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("uri"); elementRightsUri.setAttributeNode(attr); } // Add the rights requestable node: org.w3c.dom.Element elementRightsRequestable = doc.createElement("dcvalue"); elementRightsRequestable .appendChild(doc.createTextNode(Boolean.toString(journalData.isRightsRequestable()))); rootElement.appendChild(elementRightsRequestable); attr = doc.createAttribute("element"); attr.setValue("rights"); elementRightsRequestable.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementRightsRequestable.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("requestable"); elementRightsRequestable.setAttributeNode(attr); // Add the is part of node: String partOf = journalData.getIsPartOfSeries(); if (null != partOf) { org.w3c.dom.Element elementIsPartOf = doc.createElement("dcvalue"); elementIsPartOf.appendChild(doc.createTextNode(partOf)); rootElement.appendChild(elementIsPartOf); attr = doc.createAttribute("element"); attr.setValue("relation"); elementIsPartOf.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("ispartofseries"); elementIsPartOf.setAttributeNode(attr); } // Add the relation uri node: String reUri = journalData.getRelationUri(); if (null != reUri) { org.w3c.dom.Element elementRelationUri = doc.createElement("dcvalue"); elementRelationUri.appendChild(doc.createTextNode(reUri)); rootElement.appendChild(elementRelationUri); attr = doc.createAttribute("element"); attr.setValue("relation"); elementRelationUri.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("uri"); elementRelationUri.setAttributeNode(attr); } // Add the subject nodes: String[] subjectSet = journalData.getSubjects(); if (null != subjectSet && subjectSet.length > 0) { for (String subject : subjectSet) { org.w3c.dom.Element elementSubject = doc.createElement("dcvalue"); elementSubject.appendChild(doc.createTextNode(subject)); rootElement.appendChild(elementSubject); attr = doc.createAttribute("element"); attr.setValue("subject"); elementSubject.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementSubject.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("none"); elementSubject.setAttributeNode(attr); } } // Add the peerReview node: String review = journalData.getPeerReview(); if (null != review) { org.w3c.dom.Element elementPeerReview = doc.createElement("dcvalue"); elementPeerReview.appendChild(doc.createTextNode(review)); rootElement.appendChild(elementPeerReview); attr = doc.createAttribute("element"); attr.setValue("description"); elementPeerReview.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementPeerReview.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("peerreview"); elementPeerReview.setAttributeNode(attr); } // Add the peer review notes node: String peer = journalData.getPeerReviewNotes(); if (null != peer) { org.w3c.dom.Element elementPeerReviewNotes = doc.createElement("dcvalue"); elementPeerReviewNotes.appendChild(doc.createTextNode(peer)); rootElement.appendChild(elementPeerReviewNotes); attr = doc.createAttribute("element"); attr.setValue("description"); elementPeerReviewNotes.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementPeerReviewNotes.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("peerreviewnotes"); elementPeerReviewNotes.setAttributeNode(attr); } // Add the doi node: String doi = journalData.getDoi(); if (null != doi) { org.w3c.dom.Element elementDoi = doc.createElement("dcvalue"); elementDoi.appendChild(doc.createTextNode(doi)); rootElement.appendChild(elementDoi); attr = doc.createAttribute("element"); attr.setValue("identifier"); elementDoi.setAttributeNode(attr); attr = doc.createAttribute("language"); attr.setValue("en_US"); elementDoi.setAttributeNode(attr); attr = doc.createAttribute("qualifier"); attr.setValue("doi"); elementDoi.setAttributeNode(attr); } File outputFolder = new File(outputPath + File.separator + journalData.getDoi().replaceAll("/", ".")); if (!outputFolder.exists()) { outputFolder.mkdirs(); } String filePath = outputFolder + File.separator + "dublin_core.xml"; TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File(filePath)); transformer.transform(source, result); } catch (ParserConfigurationException | DOMException | BeansException pce) { pce.printStackTrace(); } catch (TransformerException ex) { Logger.getLogger(SageSourceDataHandlerImpl.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:org.apache.archiva.web.docs.RestDocsServlet.java
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { logger.debug("docs request to path: {}", req.getPathInfo()); String path = StringUtils.removeStart(req.getPathInfo(), "/"); InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(path); if (StringUtils.endsWith(path, ".xsd")) { StringEscapeUtils.escapeXml(resp.getWriter(), IOUtils.toString(is)); //IOUtils.copy( is, resp.getOutputStream() ); return;//from w w w . j a v a2s. c o m } String startPath = StringUtils.substringBefore(path, "/"); // replace all links !! Document document = Jsoup.parse(is, "UTF-8", ""); Element body = document.body().child(0); Elements links = body.select("a[href]"); for (Element link : links) { link.attr("href", "#" + startPath + "/" + link.attr("href")); } Elements datalinks = body.select("[data-href]"); for (Element link : datalinks) { link.attr("data-href", "#" + startPath + "/" + link.attr("data-href")); } Elements codes = body.select("code"); for (Element code : codes) { code.attr("class", code.attr("class") + " nice-code"); } //default generated enunciate use h1/h2/h3 which is quite big so transform to h3/h4/h5 Elements headers = body.select("h1"); for (Element header : headers) { header.tagName("h3"); } headers = body.select("h2"); for (Element header : headers) { header.tagName("h4"); } headers = body.select("h3"); for (Element header : headers) { header.tagName("h5"); } Document res = new Document(""); res.appendChild(body.select("div[id=main]").first()); Elements scripts = body.select("script"); for (Element script : scripts) { res.appendChild(script); } resp.getOutputStream().write(res.outerHtml().getBytes()); }
From source file:perflab.LoadrunnerWrapper.java
/** * @param transactions - ArrayList of LoadRunnerTransaction objects * @param summaryFile - location of xml summary file to be generated out of transaction objects in jUnit format * @return/*from w w w . ja v a 2 s. co m*/ */ private void generatejUnitReport(ArrayList<LoadRunnerTransaction> transactions, String summaryFile) { getLog().info("Transformation to jUnit XML started ..."); String stringReport = ""; try { /* * http://llg.cubic.org/docs/junit/ <testsuite tests="3" time="42.5"> <testcase classname="ZZZ_1" name="ZZZ_1" time="10.1"/> <testcase classname="ZZZ_2" name="ZZZ_2" time="11.7"/> <testcase classname="ZZZ_3" name="ZZZ_3" time="12.2"> <!--failure type="NotEnoughFoo"> too slow </failure--> </testcase> </testsuite> */ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); // root elements org.w3c.dom.Document doc = (org.w3c.dom.Document) docBuilder.newDocument(); org.w3c.dom.Element testsuiteElement = (org.w3c.dom.Element) doc.createElement("testsuite"); testsuiteElement.setAttribute("tests", String.valueOf(transactions.size())); //testsuiteElement.setAttribute("time", "total test duration"); doc.appendChild(testsuiteElement); //////////////////////////////////////////////////////////////////////////// for (LoadRunnerTransaction tr : this.transactions) { getLog().info("Dump " + tr.getName()); org.w3c.dom.Element testcaseElement = doc.createElement("testcase"); testcaseElement.setAttribute("classname", "load.ResponseTime"); testcaseElement.setAttribute("name", tr.getName()); testcaseElement.setAttribute("time", String.valueOf(tr.getAvgRT())); testsuiteElement.appendChild(testcaseElement); } //////////////////////////////////////////////////////////////////////////// // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); DOMSource source = new DOMSource(doc); File lr_report = new File(summaryFile); StreamResult result = new StreamResult(lr_report); transformer.transform(source, result); getLog().info("File saved in " + lr_report.getAbsolutePath()); } catch (ParserConfigurationException pce) { getLog().error(pce.getMessage()); pce.printStackTrace(); } catch (TransformerException tfe) { getLog().error(tfe.getMessage()); tfe.printStackTrace(); } }
From source file:perflab.LoadrunnerWrapper.java
/** * @param transactions - ArrayList of LoadRunnerTransaction objects * @return/*from www . j av a 2s . c om*/ */ private void generatePerfPublisherReport(ArrayList<LoadRunnerTransaction> transactions, String xmlFile) { getLog().info("Transformation to XML started ..."); try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); // root elements org.w3c.dom.Document doc = (org.w3c.dom.Document) docBuilder.newDocument(); org.w3c.dom.Element reportElement = (org.w3c.dom.Element) doc.createElement("report"); doc.appendChild(reportElement); //////////////////////////////////////////////////////////////////////////// //<categories> // <category name="memory" scale="mb"> // <observations> // <observation name="Server 1">100</observation> // <observation name="Server 2">200</observation> // </observations> // </category> // <category name="disk" scale="gb"> // <observations> // <observation name="Server 1">41</observation> // <observation name="Server 2">58</observation> // </observations> // </category> //</categories> // start element org.w3c.dom.Element startElement = (org.w3c.dom.Element) doc.createElement("start"); reportElement.appendChild(startElement); // date element org.w3c.dom.Element date = (org.w3c.dom.Element) doc.createElement("date"); startElement.appendChild(date); date.setAttribute("format", "YYYYMMDD"); date.setAttribute("val", "20100922"); // time element org.w3c.dom.Element time = (org.w3c.dom.Element) doc.createElement("date"); startElement.appendChild(time); time.setAttribute("format", "HHMMSS"); time.setAttribute("val", "215935"); //////////////////////////////////////////////////////////////////////////// //<test name="Smoke test" executed="yes" categ="Smoke test"> //<description>Tests if ATE LAN socket and communication works.</description> //<result> // <success passed="yes" state ="100" hasTimedOut="no" /> // <compiletime unit="s" mesure="0" isRelevant="yes" /> // <performance unit="%" mesure="0" isRelevant="yes" /> // <executiontime unit="s" mesure="12" isRelevant="yes" /> // <metrics> // <006_My_Benefits unit="sec" mesure="0.115" isRelevant="yes"/> // <007_My_Timesheet unit="sec" mesure="1.247" isRelevant="yes"/> // </metrics> //</result> //</test> //</report> //////////////////////////////////////////////////////////////////////////// // test element org.w3c.dom.Element testElement = doc.createElement("test"); reportElement.appendChild(testElement); testElement.setAttribute("name", "Smoke test"); testElement.setAttribute("executed", "yes"); testElement.setAttribute("categ", "Smoke test"); // description element org.w3c.dom.Element descriptionElement = doc.createElement("description"); descriptionElement.appendChild(doc.createTextNode("This is the best Load test ever executed...")); reportElement.appendChild(descriptionElement); //////////////////////////////////////////////////////////////////////////// // result org.w3c.dom.Element resultElement = doc.createElement("result"); reportElement.appendChild(resultElement); org.w3c.dom.Element successElement = doc.createElement("success"); resultElement.appendChild(successElement); org.w3c.dom.Element compiletimeElement = doc.createElement("compiletime"); resultElement.appendChild(compiletimeElement); org.w3c.dom.Element performanceElement = doc.createElement("performance"); resultElement.appendChild(performanceElement); org.w3c.dom.Element executiontimeElement = doc.createElement("executiontime"); resultElement.appendChild(executiontimeElement); org.w3c.dom.Element metricsElement = doc.createElement("metrics"); resultElement.appendChild(metricsElement); //////////////////////////////////////////////////////////////////////////// for (LoadRunnerTransaction tr : this.transactions) { //<006_My_Benefits unit="sec" mesure="0.115" isRelevant="yes"/> String trName = "tr_" + tr.getName(); getLog().info("Dump " + trName); org.w3c.dom.Element trElement = doc.createElement(trName); trElement.setAttribute("unit", "sec"); trElement.setAttribute("mesure", String.valueOf(tr.getAvgRT())); trElement.setAttribute("isRelevant", "yes"); metricsElement.appendChild(trElement); } //////////////////////////////////////////////////////////////////////////// // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); DOMSource source = new DOMSource(doc); File lr_report = new File(xmlFile); StreamResult result = new StreamResult(lr_report); transformer.transform(source, result); getLog().info("File saved in " + lr_report.getAbsolutePath()); } catch (ParserConfigurationException pce) { getLog().error(pce.getMessage()); pce.printStackTrace(); } catch (TransformerException tfe) { getLog().error(tfe.getMessage()); tfe.printStackTrace(); } }
From source file:perflab.loadrunnerwrapperjenkins.LoadRunnerWrapper.java
/** * @param transactions - ArrayList of LoadRunnerTransaction objects * @return/*from w w w .j a va2 s . c o m*/ */ private String generatejUnitReport(ArrayList<LoadRunnerTransaction> transactions) { String stringReport = ""; logger.println("Transformation to jUnit XML started ..."); try { /* * http://llg.cubic.org/docs/junit/ *<testsuite tests="3" time="42.5"> * <testcase classname="ZZZ_1" name="ZZZ_1" time="10.1"/> * <testcase classname="ZZZ_2" name="ZZZ_2" time="11.7"/> * <testcase classname="ZZZ_3" name="ZZZ_3" time="12.2"> * <!--failure type="NotEnoughFoo"> too slow </failure--> * </testcase> *</testsuite> */ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); // root elements org.w3c.dom.Document doc = (org.w3c.dom.Document) docBuilder.newDocument(); org.w3c.dom.Element testsuiteElement = (org.w3c.dom.Element) doc.createElement("testsuite"); testsuiteElement.setAttribute("tests", String.valueOf(transactions.size())); // testsuiteElement.setAttribute("time", "total test duration"); doc.appendChild(testsuiteElement); // ////////////////////////////////////////////////////////////////////////// for (LoadRunnerTransaction tr : this.transactions) { logger.println("Dump " + tr.getName()); org.w3c.dom.Element testcaseElement = doc.createElement("testcase"); //testcaseElement.setAttribute("classname", tr.getName()); testcaseElement.setAttribute("classname", "load." + new File(this.loadRunnerScenario).getName().replace(".lrs", "")); testcaseElement.setAttribute("name", tr.getName()); testcaseElement.setAttribute("time", String.valueOf(tr.getAvgRT())); testsuiteElement.appendChild(testcaseElement); } // ////////////////////////////////////////////////////////////////////////// // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); stringReport = this.getStringFromDoc(doc); } catch (ParserConfigurationException pce) { logger.println(pce.getMessage()); pce.printStackTrace(); } catch (TransformerException tfe) { logger.println(tfe.getMessage()); tfe.printStackTrace(); } return stringReport; }
From source file:perflab.loadrunnerwrapperjenkins.LoadRunnerWrapper.java
/** * @param transactions - ArrayList of LoadRunnerTransaction objects * //@param summaryFile - location of SCV summary file to be generated out of * transaction objects in PerfPublisher Report format * @return//from w ww . ja v a2 s. c om */ private String generatePerfPublisherReport(ArrayList<LoadRunnerTransaction> transactions) { logger.println("Transformation to XML started ..."); String stringReport = ""; try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); // root elements org.w3c.dom.Document doc = (org.w3c.dom.Document) docBuilder.newDocument(); org.w3c.dom.Element reportElement = (org.w3c.dom.Element) doc.createElement("report"); doc.appendChild(reportElement); // ////////////////////////////////////////////////////////////////////////// // <categories> // <category name="memory" scale="mb"> // <observations> // <observation name="Server 1">100</observation> // <observation name="Server 2">200</observation> // </observations> // </category> // <category name="disk" scale="gb"> // <observations> // <observation name="Server 1">41</observation> // <observation name="Server 2">58</observation> // </observations> // </category> // </categories> // start element org.w3c.dom.Element startElement = (org.w3c.dom.Element) doc.createElement("start"); reportElement.appendChild(startElement); // date element org.w3c.dom.Element date = (org.w3c.dom.Element) doc.createElement("date"); startElement.appendChild(date); date.setAttribute("format", "YYYYMMDD"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMdd"); date.setAttribute("val", sdf.format(startTime)); // time element org.w3c.dom.Element time = (org.w3c.dom.Element) doc.createElement("date"); startElement.appendChild(time); time.setAttribute("format", "HHMMSS"); SimpleDateFormat stf = new SimpleDateFormat("hhmmss"); time.setAttribute("val", stf.format(startTime)); // ////////////////////////////////////////////////////////////////////////// // <test name="Smoke test" executed="yes" categ="Smoke test"> // <description>Tests if ATE LAN socket and communication // works.</description> // <result> // <success passed="yes" state ="100" hasTimedOut="no" /> // <compiletime unit="s" mesure="0" isRelevant="yes" /> // <performance unit="%" mesure="0" isRelevant="yes" /> // <executiontime unit="s" mesure="12" isRelevant="yes" /> // <metrics> // <006_My_Benefits unit="sec" mesure="0.115" isRelevant="yes"/> // <007_My_Timesheet unit="sec" mesure="1.247" isRelevant="yes"/> // </metrics> // </result> // </test> // </report> // ////////////////////////////////////////////////////////////////////////// // test element org.w3c.dom.Element testElement = doc.createElement("test"); reportElement.appendChild(testElement); testElement.setAttribute("name", "Load test"); testElement.setAttribute("executed", "yes"); testElement.setAttribute("categ", "Load test"); // description element org.w3c.dom.Element descriptionElement = doc.createElement("description"); descriptionElement.appendChild(doc.createTextNode("This is the best Load test ever executed...")); reportElement.appendChild(descriptionElement); // ////////////////////////////////////////////////////////////////////////// // result org.w3c.dom.Element resultElement = doc.createElement("result"); reportElement.appendChild(resultElement); org.w3c.dom.Element successElement = doc.createElement("success"); resultElement.appendChild(successElement); org.w3c.dom.Element compiletimeElement = doc.createElement("compiletime"); resultElement.appendChild(compiletimeElement); org.w3c.dom.Element performanceElement = doc.createElement("performance"); resultElement.appendChild(performanceElement); org.w3c.dom.Element executiontimeElement = doc.createElement("executiontime"); resultElement.appendChild(executiontimeElement); org.w3c.dom.Element metricsElement = doc.createElement("metrics"); resultElement.appendChild(metricsElement); // ////////////////////////////////////////////////////////////////////////// for (LoadRunnerTransaction tr : this.transactions) { // <006_My_Benefits unit="sec" mesure="0.115" isRelevant="yes"/> String trName = "tr_" + tr.getName(); logger.println("Dump " + trName); org.w3c.dom.Element trElement = doc.createElement(trName); trElement.setAttribute("unit", "sec"); trElement.setAttribute("mesure", String.valueOf(tr.getAvgRT())); trElement.setAttribute("isRelevant", "yes"); metricsElement.appendChild(trElement); } // ////////////////////////////////////////////////////////////////////////// // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); stringReport = this.getStringFromDoc(doc); } catch (ParserConfigurationException pce) { logger.println(pce.getMessage()); pce.printStackTrace(); } catch (TransformerException tfe) { logger.println(tfe.getMessage()); tfe.printStackTrace(); } return stringReport; }