⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmloutputter.java

📁 openlogic-jdom-1.1-all-src-1.zip 可以用于操作xml文件
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        out.write(currentFormat.lineSeparator);        out.flush();    }    /**     * Print out the <code>{@link DocType}</code>.     *     * @param doctype <code>DocType</code> to output.     * @param out <code>Writer</code> to use.     */    public void output(DocType doctype, Writer out) throws IOException {        printDocType(out, doctype);        out.flush();    }    /**     * Print out an <code>{@link Element}</code>, including     * its <code>{@link Attribute}</code>s, and all     * contained (child) elements, etc.     *     * @param element <code>Element</code> to output.     * @param out <code>Writer</code> to use.     */    public void output(Element element, Writer out) throws IOException {        // If this is the root element we could pre-initialize the        // namespace stack with the namespaces        printElement(out, element, 0, createNamespaceStack());        out.flush();    }    /**     * This will handle printing out an <code>{@link     * Element}</code>'s content only, not including its tag, and     * attributes.  This can be useful for printing the content of an     * element that contains HTML, like "&lt;description&gt;JDOM is     * &lt;b&gt;fun&gt;!&lt;/description&gt;".     *     * @param element <code>Element</code> to output.     * @param out <code>Writer</code> to use.     */    public void outputElementContent(Element element, Writer out)                    throws IOException {        List content = element.getContent();        printContentRange(out, content, 0, content.size(),                          0, createNamespaceStack());        out.flush();    }    /**     * This will handle printing out a list of nodes.     * This can be useful for printing the content of an element that     * contains HTML, like "&lt;description&gt;JDOM is     * &lt;b&gt;fun&gt;!&lt;/description&gt;".     *     * @param list <code>List</code> of nodes.     * @param out <code>Writer</code> to use.     */    public void output(List list, Writer out)                    throws IOException {        printContentRange(out, list, 0, list.size(),                          0, createNamespaceStack());        out.flush();    }    /**     * Print out a <code>{@link CDATA}</code> node.     *     * @param cdata <code>CDATA</code> to output.     * @param out <code>Writer</code> to use.     */    public void output(CDATA cdata, Writer out) throws IOException {        printCDATA(out, cdata);        out.flush();    }    /**     * Print out a <code>{@link Text}</code> node.  Perfoms     * the necessary entity escaping and whitespace stripping.     *     * @param text <code>Text</code> to output.     * @param out <code>Writer</code> to use.     */    public void output(Text text, Writer out) throws IOException {        printText(out, text);        out.flush();    }    /**     * Print out a <code>{@link Comment}</code>.     *     * @param comment <code>Comment</code> to output.     * @param out <code>Writer</code> to use.     */    public void output(Comment comment, Writer out) throws IOException {        printComment(out, comment);        out.flush();    }    /**     * Print out a <code>{@link ProcessingInstruction}</code>.     *     * @param pi <code>ProcessingInstruction</code> to output.     * @param out <code>Writer</code> to use.     */    public void output(ProcessingInstruction pi, Writer out)                                 throws IOException {        boolean currentEscapingPolicy = currentFormat.ignoreTrAXEscapingPIs;        // Output PI verbatim, disregarding TrAX escaping PIs.        currentFormat.setIgnoreTrAXEscapingPIs(true);        printProcessingInstruction(out, pi);        currentFormat.setIgnoreTrAXEscapingPIs(currentEscapingPolicy);        out.flush();    }    /**     * Print out a <code>{@link EntityRef}</code>.     *     * @param entity <code>EntityRef</code> to output.     * @param out <code>Writer</code> to use.     */    public void output(EntityRef entity, Writer out) throws IOException {        printEntityRef(out, entity);        out.flush();    }    // * * * * * * * * * * Output to a String * * * * * * * * * *    // * * * * * * * * * * Output to a String * * * * * * * * * *    /**     * Return a string representing a document.  Uses an internal     * StringWriter. Warning: a String is Unicode, which may not match     * the outputter's specified encoding.     *     * @param doc <code>Document</code> to format.     */    public String outputString(Document doc) {        StringWriter out = new StringWriter();        try {            output(doc, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }    /**     * Return a string representing a DocType. Warning: a String is     * Unicode, which may not match the outputter's specified     * encoding.     *     * @param doctype <code>DocType</code> to format.     */    public String outputString(DocType doctype) {        StringWriter out = new StringWriter();        try {            output(doctype, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }    /**     * Return a string representing an element. Warning: a String is     * Unicode, which may not match the outputter's specified     * encoding.     *     * @param element <code>Element</code> to format.     */    public String outputString(Element element) {        StringWriter out = new StringWriter();        try {            output(element, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }   /**     * Return a string representing a list of nodes.  The list is     * assumed to contain legal JDOM nodes.     *     * @param list <code>List</code> to format.     */    public String outputString(List list) {        StringWriter out = new StringWriter();        try {            output(list, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }    /**     * Return a string representing a CDATA node. Warning: a String is     * Unicode, which may not match the outputter's specified     * encoding.     *     * @param cdata <code>CDATA</code> to format.     */    public String outputString(CDATA cdata) {        StringWriter out = new StringWriter();        try {            output(cdata, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }    /**     * Return a string representing a Text node. Warning: a String is     * Unicode, which may not match the outputter's specified     * encoding.     *     * @param text <code>Text</code> to format.     */    public String outputString(Text text) {        StringWriter out = new StringWriter();        try {            output(text, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }    /**     * Return a string representing a comment. Warning: a String is     * Unicode, which may not match the outputter's specified     * encoding.     *     * @param comment <code>Comment</code> to format.     */    public String outputString(Comment comment) {        StringWriter out = new StringWriter();        try {            output(comment, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }    /**     * Return a string representing a PI. Warning: a String is     * Unicode, which may not match the outputter's specified     * encoding.     *     * @param pi <code>ProcessingInstruction</code> to format.     */    public String outputString(ProcessingInstruction pi) {        StringWriter out = new StringWriter();        try {            output(pi, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }   /**     * Return a string representing an entity. Warning: a String is     * Unicode, which may not match the outputter's specified     * encoding.     *     * @param entity <code>EntityRef</code> to format.     */    public String outputString(EntityRef entity) {        StringWriter out = new StringWriter();        try {            output(entity, out);  // output() flushes        } catch (IOException e) { }        return out.toString();    }    // * * * * * * * * * * Internal printing methods * * * * * * * * * *    // * * * * * * * * * * Internal printing methods * * * * * * * * * *    /**     * This will handle printing of the declaration.     * Assumes XML version 1.0 since we don't directly know.     *     * @param doc <code>Document</code> whose declaration to write.     * @param out <code>Writer</code> to use.     * @param encoding The encoding to add to the declaration     */    protected void printDeclaration(Writer out, Document doc,                                    String encoding) throws IOException {        // Only print the declaration if it's not being omitted        if (!userFormat.omitDeclaration) {            // Assume 1.0 version            out.write("<?xml version=\"1.0\"");            if (!userFormat.omitEncoding) {                out.write(" encoding=\"" + encoding + "\"");            }            out.write("?>");            // Print new line after decl always, even if no other new lines            // Helps the output look better and is semantically            // inconsequential            out.write(currentFormat.lineSeparator);        }    }    /**     * This handle printing the DOCTYPE declaration if one exists.     *     * @param docType <code>Document</code> whose declaration to write.     * @param out <code>Writer</code> to use.     */    protected void printDocType(Writer out, DocType docType)                        throws IOException {        String publicID = docType.getPublicID();        String systemID = docType.getSystemID();        String internalSubset = docType.getInternalSubset();        boolean hasPublic = false;        out.write("<!DOCTYPE ");        out.write(docType.getElementName());        if (publicID != null) {            out.write(" PUBLIC \"");            out.write(publicID);            out.write("\"");            hasPublic = true;        }        if (systemID != null) {            if (!hasPublic) {                out.write(" SYSTEM");            }            out.write(" \"");            out.write(systemID);            out.write("\"");        }        if ((internalSubset != null) && (!internalSubset.equals(""))) {            out.write(" [");            out.write(currentFormat.lineSeparator);            out.write(docType.getInternalSubset());            out.write("]");        }        out.write(">");    }    /**     * This will handle printing of comments.     *     * @param comment <code>Comment</code> to write.     * @param out <code>Writer</code> to use.     */    protected void printComment(Writer out, Comment comment)                       throws IOException {        out.write("<!--");        out.write(comment.getText());        out.write("-->");    }    /**     * This will handle printing of processing instructions.     *     * @param pi <code>ProcessingInstruction</code> to write.     * @param out <code>Writer</code> to use.     */    protected void printProcessingInstruction(Writer out, ProcessingInstruction pi                                              ) throws IOException {        String target = pi.getTarget();        boolean piProcessed = false;        if (currentFormat.ignoreTrAXEscapingPIs == false) {            if (target.equals(Result.PI_DISABLE_OUTPUT_ESCAPING)) {                escapeOutput = false;                piProcessed  = true;            }            else if (target.equals(Result.PI_ENABLE_OUTPUT_ESCAPING)) {                escapeOutput = true;                piProcessed  = true;            }        }        if (piProcessed == false) {            String rawData = pi.getData();            // Write <?target data?> or if no data then just <?target?>            if (!"".equals(rawData)) {                out.write("<?");                out.write(target);                out.write(" ");                out.write(rawData);                out.write("?>");            }            else {                out.write("<?");                out.write(target);                out.write("?>");            }        }    }    /**     * This will handle printing a <code>{@link EntityRef}</code>.     * Only the entity reference such as <code>&amp;entity;</code>     * will be printed. However, subclasses are free to override     * this method to print the contents of the entity instead.     *     * @param entity <code>EntityRef</code> to output.     * @param out <code>Writer</code> to use.  */    protected void printEntityRef(Writer out, EntityRef entity)                       throws IOException {        out.write("&");        out.write(entity.getName());

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -