Example usage for org.dom4j.io XMLWriter XMLWriter

List of usage examples for org.dom4j.io XMLWriter XMLWriter

Introduction

In this page you can find the example usage for org.dom4j.io XMLWriter XMLWriter.

Prototype

public XMLWriter(OutputStream out, OutputFormat format) throws UnsupportedEncodingException 

Source Link

Usage

From source file:org.apache.poi.openxml4j.opc.StreamHelper.java

License:Apache License

/**
 * Turning the DOM4j object in the specified output stream.
 *
 * @param xmlContent/*from  www . j  a va 2 s. c  o  m*/
 *            The XML document.
 * @param outStream
 *            The OutputStream in which the XML document will be written.
 * @return <b>true</b> if the xml is successfully written in the stream,
 *         else <b>false</b>.
 */
public static boolean saveXmlInStream(Document xmlContent, OutputStream outStream) {
    try {
        OutputFormat outformat = OutputFormat.createPrettyPrint();
        outformat.setEncoding("UTF-8");
        XMLWriter writer = new XMLWriter(outStream, outformat);
        writer.write(xmlContent);
    } catch (Exception e) {
        return false;
    }
    return true;
}

From source file:org.apache.taglibs.xtags.xpath.OutputTag.java

License:Apache License

public int doStartTag() throws JspException {
    OutputFormat format = null;/*from   ww  w  .  ja v  a  2s  .c o  m*/
    if (indent != null) {
        format = OutputFormat.createPrettyPrint();
        format.setIndent(indent);
    } else {
        format = new OutputFormat();
    }
    format.setOmitEncoding(asBoolean(omitXmlDeclaration));

    Writer out = pageContext.getOut();
    if (method != null && method.equalsIgnoreCase("html")) {
        xmlWriter = new HTMLWriter(out, format);
    } else {
        xmlWriter = new XMLWriter(out, format);
    }
    return EVAL_BODY_INCLUDE;
}

From source file:org.apache.taglibs.xtags.xpath.TagHelper.java

License:Apache License

public static XMLWriter getXMLWriter(PageContext pageContext, Tag thisTag) {
    OutputTag tag = (OutputTag) TagSupport.findAncestorWithClass(thisTag, OutputTag.class);
    if (tag != null) {
        return tag.getXMLWriter();
    }/*from  www . j a  va2 s  .  c o m*/
    return new XMLWriter(pageContext.getOut(), getOutputFormat(pageContext));
}

From source file:org.apache.taglibs.xtags.xpath.TagHelper.java

License:Apache License

public static XMLWriter createXMLWriter(PageContext pageContext) {
    return new XMLWriter(pageContext.getOut(), getOutputFormat(pageContext));
}

From source file:org.apereo.portal.layout.dlm.RDBMDistributedLayoutStore.java

License:Apache License

private org.dom4j.Element getExportLayoutDom(IPerson person, IUserProfile profile) {
    if (!this.layoutExistsForUser(person)) {
        return null;
    }/*from   w ww  .j  a  va 2 s  . co  m*/

    org.dom4j.Document layoutDoc = null;
    try {
        final Document layoutDom = this._safeGetUserLayout(person, profile);
        person.setAttribute(Constants.PLF, layoutDom);
        layoutDoc = this.reader.get().read(layoutDom);
    } catch (final Throwable t) {
        final String msg = "Unable to obtain layout & profile for user '" + person.getUserName()
                + "', profileId " + profile.getProfileId();
        throw new RuntimeException(msg, t);
    }

    if (logger.isDebugEnabled()) {
        // Write out this version of the layout to the log for dev purposes...
        final StringWriter str = new StringWriter();
        final XMLWriter xml = new XMLWriter(str, new OutputFormat("  ", true));
        try {
            xml.write(layoutDoc);
            xml.close();
        } catch (final Throwable t) {
            throw new RuntimeException(
                    "Failed to write the layout for user '" + person.getUserName() + "' to the DEBUG log", t);
        }
        logger.debug("Layout for user: {}\n{}", person.getUserName(), str.getBuffer().toString());
    }

    /*
     * Attempt to detect a corrupted layout; return null in such cases
     */

    if (isLayoutCorrupt(layoutDoc)) {
        logger.warn("Layout for user: {} is corrupt; layout structures will not be exported.",
                person.getUserName());
        return null;
    }

    /*
     * Clean up the DOM for export.
     */

    // (1) Add structure & theme attributes...
    final int structureStylesheetId = profile.getStructureStylesheetId();
    this.addStylesheetUserPreferencesAttributes(person, profile, layoutDoc, structureStylesheetId, "structure");

    final int themeStylesheetId = profile.getThemeStylesheetId();
    this.addStylesheetUserPreferencesAttributes(person, profile, layoutDoc, themeStylesheetId, "theme");

    // (2) Remove locale info...
    final Iterator<org.dom4j.Attribute> locale = (Iterator<org.dom4j.Attribute>) layoutDoc
            .selectNodes("//@locale").iterator();
    while (locale.hasNext()) {
        final org.dom4j.Attribute loc = locale.next();
        loc.getParent().remove(loc);
    }

    // (3) Scrub unnecessary channel information...
    for (final Iterator<org.dom4j.Element> orphanedChannels = (Iterator<org.dom4j.Element>) layoutDoc
            .selectNodes("//channel[@fname = '']").iterator(); orphanedChannels.hasNext();) {
        // These elements represent UP_LAYOUT_STRUCT rows where the
        // CHAN_ID field was not recognized by ChannelRegistryStore;
        // best thing to do is remove the elements...
        final org.dom4j.Element ch = orphanedChannels.next();
        ch.getParent().remove(ch);
    }
    final List<String> channelAttributeWhitelist = Arrays.asList(new String[] { "fname", "unremovable",
            "hidden", "immutable", "ID", "dlm:plfID", "dlm:moveAllowed", "dlm:deleteAllowed" });
    final Iterator<org.dom4j.Element> channels = (Iterator<org.dom4j.Element>) layoutDoc
            .selectNodes("//channel").iterator();
    while (channels.hasNext()) {
        final org.dom4j.Element oldCh = channels.next();
        final org.dom4j.Element parent = oldCh.getParent();
        final org.dom4j.Element newCh = this.fac.createElement("channel");
        for (final String aName : channelAttributeWhitelist) {
            final org.dom4j.Attribute a = (org.dom4j.Attribute) oldCh.selectSingleNode("@" + aName);
            if (a != null) {
                newCh.addAttribute(a.getQName(), a.getValue());
            }
        }
        parent.elements().add(parent.elements().indexOf(oldCh), newCh);
        parent.remove(oldCh);
    }

    // (4) Convert internal DLM noderefs to external form (pathrefs)...
    for (final Iterator<org.dom4j.Attribute> origins = (Iterator<org.dom4j.Attribute>) layoutDoc
            .selectNodes("//@dlm:origin").iterator(); origins.hasNext();) {
        final org.dom4j.Attribute org = origins.next();
        final Pathref dlmPathref = this.nodeReferenceFactory.getPathrefFromNoderef(
                (String) person.getAttribute(IPerson.USERNAME), org.getValue(), layoutDoc.getRootElement());
        if (dlmPathref != null) {
            // Change the value only if we have a valid pathref...
            org.setValue(dlmPathref.toString());
        } else {
            if (logger.isWarnEnabled()) {
                logger.warn("Layout element '{}' from user '{}' failed to match noderef '{}'",
                        org.getUniquePath(), person.getAttribute(IPerson.USERNAME), org.getValue());
            }
        }
    }
    for (final Iterator<org.dom4j.Attribute> it = (Iterator<org.dom4j.Attribute>) layoutDoc
            .selectNodes("//@dlm:target").iterator(); it.hasNext();) {
        final org.dom4j.Attribute target = it.next();
        final Pathref dlmPathref = this.nodeReferenceFactory.getPathrefFromNoderef(
                (String) person.getAttribute(IPerson.USERNAME), target.getValue(), layoutDoc.getRootElement());
        if (dlmPathref != null) {
            // Change the value only if we have a valid pathref...
            target.setValue(dlmPathref.toString());
        } else {
            if (logger.isWarnEnabled()) {
                logger.warn("Layout element '{}' from user '{}' failed to match noderef '{}'",
                        target.getUniquePath(), person.getAttribute(IPerson.USERNAME), target.getValue());
            }
        }
    }
    for (final Iterator<org.dom4j.Attribute> names = (Iterator<org.dom4j.Attribute>) layoutDoc
            .selectNodes("//dlm:*/@name").iterator(); names.hasNext();) {
        final org.dom4j.Attribute n = names.next();
        if (n.getValue() == null || n.getValue().trim().length() == 0) {
            // Outer <dlm:positionSet> elements don't seem to use the name
            // attribute, though their childern do.  Just skip these so we
            // don't send a false WARNING.
            continue;
        }
        final Pathref dlmPathref = this.nodeReferenceFactory.getPathrefFromNoderef(
                (String) person.getAttribute(IPerson.USERNAME), n.getValue(), layoutDoc.getRootElement());
        if (dlmPathref != null) {
            // Change the value only if we have a valid pathref...
            n.setValue(dlmPathref.toString());
            // These *may* have fnames...
            if (dlmPathref.getPortletFname() != null) {
                n.getParent().addAttribute("fname", dlmPathref.getPortletFname());
            }
        } else {
            if (logger.isWarnEnabled()) {
                logger.warn("Layout element '{}' from user '{}' failed to match noderef '{}'",
                        n.getUniquePath(), person.getAttribute(IPerson.USERNAME), n.getValue());
            }
        }
    }

    // Remove synthetic Ids, but from non-fragment owners only...
    if (!this.isFragmentOwner(person)) {

        /*
         * In the case of fragment owners, the original database Ids allow
         * us keep (not break) the associations that subscribers have with
         * nodes on the fragment layout.
         */

        // (5) Remove dlm:plfID...
        for (final Iterator<org.dom4j.Attribute> plfid = (Iterator<org.dom4j.Attribute>) layoutDoc
                .selectNodes("//@dlm:plfID").iterator(); plfid.hasNext();) {
            final org.dom4j.Attribute plf = plfid.next();
            plf.getParent().remove(plf);
        }

        // (6) Remove database Ids...
        for (final Iterator<org.dom4j.Attribute> ids = (Iterator<org.dom4j.Attribute>) layoutDoc
                .selectNodes("//@ID").iterator(); ids.hasNext();) {
            final org.dom4j.Attribute a = ids.next();
            a.getParent().remove(a);
        }
    }

    return layoutDoc.getRootElement();
}

From source file:org.arangitester.log.XmlResult.java

License:Apache License

public void save(File file, FunctionalSuite result) {

    // file indicates a pathname
    Document document = DocumentHelper.createDocument(); // create a new xml document
    Element root = document.addElement("LccFunctionalSuite"); // create the root tag named LccFunctionalSuite
    if (result == null)
        return;// ww w  .j a va 2 s  .com

    SummaryHelper summary = new SummaryHelper(result);

    root.addAttribute("totalTime", String.valueOf(summary.getTotalTime()));
    System.out.println("Tempo de Execuo: " + summary.getTotalTime() + " min");
    root.addAttribute("total", String.valueOf(summary.getTotal()));
    System.out.println("Total: " + summary.getTotal());
    root.addAttribute("skip", String.valueOf(summary.getSkip()));
    System.out.println("Skiped: " + summary.getSkip());
    root.addAttribute("fail", String.valueOf(summary.getFail()));
    System.out.println("Fail: " + summary.getFail());
    root.addAttribute("successful", String.valueOf(summary.getSuccessful()));
    System.out.println("Successful: " + summary.getSuccessful());
    root.addAttribute("percent", String.valueOf(summary.getPercent()));
    System.out.println("Sucessful: " + summary.getPercent() + "%");

    for (UseCase usecase : result.getCases()) {
        Element userCaseElement = root.addElement("UseCase").addAttribute("name", usecase.getName())
                .addAttribute("startTime", getFormatedDate((usecase.getStartTime())))
                .addAttribute("endTime", getFormatedDate(usecase.getEndTime()));

        for (String obs : usecase.getObs()) {
            Element obsElement = userCaseElement.addElement("Obs");
            obsElement.addText(obs);
        }

        for (Object log : usecase.getlogs()) {
            if (log instanceof Info) {
                userCaseElement.addElement("info").addText(((Info) log).getMessage());
            } else {
                Error error = ((Error) log);
                Element errorElement = userCaseElement.addElement("error").addAttribute("cause",
                        error.getCause());
                if (error.getScreenshot() != null)
                    errorElement.addAttribute("screenshot", error.getScreenshot());

                if (error.getError() != null)
                    errorElement.addText(error.getError());
            }
        }

        for (TestCase testcase : usecase.getTestcases()) {
            Element testCaseElement = userCaseElement.addElement("TestCase")
                    .addAttribute("name", testcase.getJavaMethod())
                    .addAttribute("description", testcase.getTestcase())
                    .addAttribute("startTime", getFormatedDate(testcase.getStartTime()))
                    .addAttribute("endTime", getFormatedDate(testcase.getEndTime()))
                    .addAttribute("skip", String.valueOf(testcase.isSkip()));

            for (Object log : testcase.getlogs()) {
                if (log instanceof Info) {
                    testCaseElement.addElement("info").addText(((Info) log).getMessage());
                } else {
                    Error error = ((Error) log);
                    Element errorElement = testCaseElement.addElement("error").addAttribute("cause",
                            error.getCause());
                    if (error.getScreenshot() != null)
                        errorElement.addAttribute("screenshot", error.getScreenshot());

                    if (error.getError() != null)
                        errorElement.addText(error.getError());
                }
            }

        }
    }
    // End of the document building
    // Now, we will start to write in document
    try {
        file.getParentFile().mkdirs();
        file.createNewFile();
        OutputFormat outformat = OutputFormat.createPrettyPrint();
        XMLWriter write = new XMLWriter(new FileWriter(file), outformat); // Initialize the xml file
        write.write(document); // Write the final document on xml file
        write.close();
    } catch (IOException e) {
        System.out.println("Erro durante a gravao no arquivo " + file + " :\n" + e.toString());
    }

}