Example usage for org.jsoup.nodes Element appendChild

List of usage examples for org.jsoup.nodes Element appendChild

Introduction

In this page you can find the example usage for org.jsoup.nodes Element appendChild.

Prototype

public Element appendChild(Node child) 

Source Link

Document

Add a node child node to this element.

Usage

From source file:im.ene.lab.attiq.ui.activities.ItemDetailActivity.java

@SuppressWarnings("unused")
public void onEventMainThread(ItemCommentsEvent event) {
    if (!UIUtil.isEmpty(event.comments)) {
        mCommentsView.setVisibility(View.VISIBLE);
        List<Comment> comments = event.comments;

        mCommentCount.setText(comments.size() + "");

        String info = comments.size() == 1 ? getString(R.string.comment_singular)
                : getString(R.string.comment_plural);
        // FIXME should use plural strings
        mCommentInfo.setText(getString(R.string.article_comment, comments.size(), info));

        final String html;
        try {//from  ww w .j  av a 2 s .c o  m
            html = IOUtil.readAssets("html/comments.html");

            Document fullBody = Jsoup.parse(html);
            Element content = fullBody.getElementById("content");

            for (Comment comment : comments) {
                String commentHtml = IOUtil.readAssets("html/comment.html");
                commentHtml = commentHtml.replace("{user_icon_url}", comment.getUser().getProfileImageUrl())
                        .replace("{user_name}", comment.getUser().getId())
                        .replace("{comment_time}", TimeUtil.commentTime(comment.getCreatedAt()))
                        .replace("{article_uuid}", mItemUuid).replace("{comment_id}", comment.getId());

                Document commentDoc = Jsoup.parse(commentHtml);
                Element eComment = commentDoc.getElementsByClass("comment-box").first();
                eComment.getElementsByClass("message").first().append(comment.getRenderedBody());
                // remove comment edit block if it is not from current user
                if (mMyProfile == null || !mMyProfile.getId().equals(comment.getUser().getId())) {
                    String commentId = "comment_{comment_id}_{user_name}"
                            .replace("{comment_id}", comment.getId())
                            .replace("{user_name}", comment.getUser().getId());
                    Element commentEditor = commentDoc.getElementById(commentId);
                    commentEditor.remove();
                }

                content.appendChild(eComment);
            }

            String result = fullBody.outerHtml();
            mCommentsView.loadDataWithBaseURL("http://qiita.com/", result, null, null, null);
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        mCommentCount.setText("0");
        mCommentInfo.setText(getString(R.string.article_comment, 0, getString(R.string.comment_plural)));
        mCommentsView.setVisibility(View.GONE);
    }
}

From source file:org.craftercms.social.migration.controllers.MainController.java

protected void getHtml(final FileWriter writer) throws TransformerException, IOException {
    final URL in = getClass().getResource(
            MigrationTool.systemProperties.getString("crafter" + ".migration" + "" + ".loggerTemplate"));
    if (in == null) {
        log.error("Unable to find {} "
                + MigrationTool.systemProperties.getString("crafter" + ".migration" + "" + ".loggerTemplate"));
    }/*from  ww w .  j  a  va  2 s. c  om*/
    final Document loggingDoc = Jsoup.parse(IOUtils.toString(in));
    final Element logs = loggingDoc.getElementById("logs");
    for (Object o : logTable.getItems()) {
        if (o instanceof UserLogEntry) {
            UserLogEntry userLogEntry = (UserLogEntry) o;
            String dateFormat = new SimpleDateFormat("yyyy MM dd hh:mm:ss zzz").format(userLogEntry.getDate());
            final Element tr = loggingDoc.createElement("tr");
            tr.attr("class", userLogEntry.getLevel().getCssClass());
            final Element tmigrator = loggingDoc.createElement("td");
            final Element tdate = loggingDoc.createElement("td");
            final Element tmessage = loggingDoc.createElement("td");
            tmessage.attr("class", "text-center");
            tmessage.text(userLogEntry.getMessage());
            tdate.text(dateFormat);
            tmigrator.text(userLogEntry.getSource());
            tr.appendChild(tmigrator);
            tr.appendChild(tdate);
            tr.appendChild(tmessage);
            logs.appendChild(tr);
        }
    }
    IOUtils.write(loggingDoc.toString(), writer);
    //        Transformer transformer = TransformerFactory.newInstance().newTransformer();
    //        transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
    //        transformer.setOutputProperty(OutputKeys.METHOD, "xml");
    //        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    //        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    //        transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
    //        transformer.transform(new DOMSource(loggingDoc), new StreamResult(writer));
    writer.flush();
    writer.close();
}

From source file:org.jboss.tools.windup.ui.internal.issues.IssueDetailsView.java

public static void addPrism(Document doc) {
    try {//from   w  w  w  . j a v  a  2 s .co  m
        Bundle bundle = WindupUIPlugin.getDefault().getBundle();
        Elements codeElements = doc.getElementsByTag("code");
        codeElements.forEach(element -> {
            Set<String> classNames = element.classNames();
            Set<String> newNames = Sets.newHashSet();
            classNames.forEach(className -> {
                // prismjs requires prefix, i'm not sure about another/easier workaround.
                newNames.add("language-" + className);
            });
            element.classNames(newNames);
        });

        DocumentType type = new DocumentType("html", "", "", "");
        doc.insertChildren(0, Lists.newArrayList(type));

        Element head = doc.head();
        Element css = doc.createElement("link");

        URL fileURL = FileLocator.find(bundle, new Path("html/prism.css"), null);
        String srcPath = FileLocator.resolve(fileURL).getPath();

        css.attr("href", srcPath);
        css.attr("rel", "stylesheet");
        head.appendChild(css);

        Element body = doc.body();
        Element script = doc.createElement("script");

        fileURL = FileLocator.find(bundle, new Path("html/prism.js"), null);
        srcPath = FileLocator.resolve(fileURL).getPath();

        script.attr("src", srcPath);
        body.appendChild(script);
    } catch (Exception e) {
        WindupUIPlugin.log(e);
    }
}

From source file:org.structr.web.importer.Importer.java

/**
 * Parse the code previously read by {@link Importer#readPage()} and treat it as page fragment.
 *
 * @param fragment/*from  www  .  j av  a2  s. com*/
 * @return
 * @throws FrameworkException
 */
public boolean parse(final boolean fragment) throws FrameworkException {

    init();

    if (StringUtils.isNotBlank(code)) {

        if (!isDeployment) {
            logger.info("##### Start parsing code for page {} #####", new Object[] { name });
        } else {

            // a trailing slash to all void/self-closing tags so the XML parser can parse it correctly
            code = code.replaceAll(
                    "<(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)([^>]*)>",
                    "<$1$2/>");
        }

        if (fragment) {

            if (isDeployment) {

                final List<Node> nodeList = Parser.parseXmlFragment(code, "");
                parsedDocument = Document.createShell("");
                final Element body = parsedDocument.body();
                final Node[] nodes = nodeList.toArray(new Node[nodeList.size()]);

                for (int i = nodes.length - 1; i > 0; i--) {
                    nodes[i].remove();
                }

                for (Node node : nodes) {
                    body.appendChild(node);
                }

            } else {

                parsedDocument = Jsoup.parseBodyFragment(code);
            }

        } else {

            if (isDeployment) {

                parsedDocument = Jsoup.parse(code, "", Parser.xmlParser());

            } else {

                parsedDocument = Jsoup.parse(code);
            }

        }

    } else {

        if (!isDeployment) {
            logger.info("##### Start fetching {} for page {} #####", new Object[] { address, name });
        }

        code = HttpHelper.get(address);
        parsedDocument = Jsoup.parse(code);

    }

    return true;

}

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// ww w. j  a v a2 s. c  om
 */
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  ww w  .j ava  2s.  com
 */
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//ww w  . j  ava2s.  co 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//ww w .jav  a  2 s  .co  m
 */
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;
}