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

📄 xmlwriter.java

📁 openlogic-jdom-1.1-all-src-1.zip 可以用于操作xml文件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
     * <p>This method is invoked automatically by the     * {@link #endDocument endDocument} method after writing a     * document.</p>     *     * @see #reset     */    public void flush ()    throws IOException    {        output.flush();    }    /**     * Set a new output destination for the document.     *     * @param writer The output destination, or null to use     *        standard output.     * @return The current output writer.     * @see #flush     */    public void setOutput (Writer writer)    {        if (writer == null) {            output = new OutputStreamWriter(System.out);        } else {            output = writer;        }    }    /**     * Specify a preferred prefix for a Namespace URI.     *     * <p>Note that this method does not actually force the Namespace     * to be declared; to do that, use the {@link     * #forceNSDecl(java.lang.String) forceNSDecl} method as well.</p>     *     * @param uri The Namespace URI.     * @param prefix The preferred prefix, or "" to select     *        the default Namespace.     * @see #getPrefix     * @see #forceNSDecl(java.lang.String)     * @see #forceNSDecl(java.lang.String,java.lang.String)     */    public void setPrefix (String uri, String prefix)    {        prefixTable.put(uri, prefix);    }    /**     * Get the current or preferred prefix for a Namespace URI.     *     * @param uri The Namespace URI.     * @return The preferred prefix, or "" for the default Namespace.     * @see #setPrefix     */    public String getPrefix (String uri)    {        return (String)prefixTable.get(uri);    }    /**     * Force a Namespace to be declared on the root element.     *     * <p>By default, the XMLWriter will declare only the Namespaces     * needed for an element; as a result, a Namespace may be     * declared many places in a document if it is not used on the     * root element.</p>     *     * <p>This method forces a Namespace to be declared on the root     * element even if it is not used there, and reduces the number     * of xmlns attributes in the document.</p>     *     * @param uri The Namespace URI to declare.     * @see #forceNSDecl(java.lang.String,java.lang.String)     * @see #setPrefix     */    public void forceNSDecl (String uri)    {        forcedDeclTable.put(uri, Boolean.TRUE);    }    /**     * Force a Namespace declaration with a preferred prefix.     *     * <p>This is a convenience method that invokes {@link     * #setPrefix setPrefix} then {@link #forceNSDecl(java.lang.String)     * forceNSDecl}.</p>     *     * @param uri The Namespace URI to declare on the root element.     * @param prefix The preferred prefix for the Namespace, or ""     *        for the default Namespace.     * @see #setPrefix     * @see #forceNSDecl(java.lang.String)     */    public void forceNSDecl (String uri, String prefix)    {        setPrefix(uri, prefix);        forceNSDecl(uri);    }    ////////////////////////////////////////////////////////////////////    // Methods from org.xml.sax.ContentHandler.    ////////////////////////////////////////////////////////////////////    /**     * Write the XML declaration at the beginning of the document.     *     * Pass the event on down the filter chain for further processing.     *     * @exception org.xml.sax.SAXException If there is an error     *            writing the XML declaration, or if a handler further down     *            the filter chain raises an exception.     * @see org.xml.sax.ContentHandler#startDocument     */    public void startDocument ()    throws SAXException    {        reset();      //write("<?xml version=\"1.0\" standalone=\"yes\"?>\n\n");        write("<?xml version=\"1.0\"?>\n\n");        super.startDocument();    }    /**     * Write a newline at the end of the document.     *     * Pass the event on down the filter chain for further processing.     *     * @exception org.xml.sax.SAXException If there is an error     *            writing the newline, or if a handler further down     *            the filter chain raises an exception.     * @see org.xml.sax.ContentHandler#endDocument     */    public void endDocument ()    throws SAXException    {        closeElement();        write('\n');        super.endDocument();        try {            flush();        } catch (IOException e) {            throw new SAXException(e);        }    }    /**     * Write a start tag.     *     * Pass the event on down the filter chain for further processing.     *     * @param uri The Namespace URI, or the empty string if none     *        is available.     * @param localName The element's local (unprefixed) name (required).     * @param qName The element's qualified (prefixed) name, or the     *        empty string is none is available.  This method will     *        use the qName as a template for generating a prefix     *        if necessary, but it is not guaranteed to use the     *        same qName.     * @param atts The element's attribute list (must not be null).     * @exception org.xml.sax.SAXException If there is an error     *            writing the start tag, or if a handler further down     *            the filter chain raises an exception.     * @see org.xml.sax.ContentHandler#startElement     */    public void startElement (String uri, String localName,                              String qName, Attributes atts)    throws SAXException    {        closeElement();        elementLevel++;        nsSupport.pushContext();        write('<');        writeName(uri, localName, qName, true);        writeAttributes(atts);        if (elementLevel == 1) {            forceNSDecls();        }        writeNSDecls();        openElement = true;        super.startElement(uri, localName, qName, atts);    }    /**     * Write an end tag.     *     * Pass the event on down the filter chain for further processing.     *     * @param uri The Namespace URI, or the empty string if none     *        is available.     * @param localName The element's local (unprefixed) name (required).     * @param qName The element's qualified (prefixed) name, or the     *        empty string is none is available.  This method will     *        use the qName as a template for generating a prefix     *        if necessary, but it is not guaranteed to use the     *        same qName.     * @exception org.xml.sax.SAXException If there is an error     *            writing the end tag, or if a handler further down     *            the filter chain raises an exception.     * @see org.xml.sax.ContentHandler#endElement     */    public void endElement (String uri, String localName, String qName)    throws SAXException    {        if (openElement) {            write("/>");            openElement = false;        } else {            write("</");            writeName(uri, localName, qName, true);            write('>');        }        if (elementLevel == 1) {            write('\n');        }        super.endElement(uri, localName, qName);        nsSupport.popContext();        elementLevel--;    }    /**     * Write character data.     *     * Pass the event on down the filter chain for further processing.     *     * @param ch The array of characters to write.     * @param start The starting position in the array.     * @param length The number of characters to write.     * @exception org.xml.sax.SAXException If there is an error     *            writing the characters, or if a handler further down     *            the filter chain raises an exception.     * @see org.xml.sax.ContentHandler#characters     */    public void characters (char ch[], int start, int len)    throws SAXException    {        closeElement();        writeEsc(ch, start, len, false);        super.characters(ch, start, len);    }    /**     * Write ignorable whitespace.     *     * Pass the event on down the filter chain for further processing.     *     * @param ch The array of characters to write.     * @param start The starting position in the array.     * @param length The number of characters to write.     * @exception org.xml.sax.SAXException If there is an error     *            writing the whitespace, or if a handler further down     *            the filter chain raises an exception.     * @see org.xml.sax.ContentHandler#ignorableWhitespace     */    public void ignorableWhitespace (char ch[], int start, int length)    throws SAXException    {        closeElement();        writeEsc(ch, start, length, false);        super.ignorableWhitespace(ch, start, length);    }    /**     * Write a processing instruction.     *     * Pass the event on down the filter chain for further processing.     *     * @param target The PI target.     * @param data The PI data.     * @exception org.xml.sax.SAXException If there is an error     *            writing the PI, or if a handler further down     *            the filter chain raises an exception.     * @see org.xml.sax.ContentHandler#processingInstruction     */    public void processingInstruction (String target, String data)    throws SAXException    {        closeElement();        write("<?");        write(target);        write(' ');        write(data);        write("?>");        if (elementLevel < 1) {            write('\n');        }        super.processingInstruction(target, data);    }    ////////////////////////////////////////////////////////////////////    // Methods from org.xml.sax.ext.LexicalHandler.    ////////////////////////////////////////////////////////////////////    /**     * Write start of DOCTYPE declaration.     *     * Pass the event on down the filter chain for further processing.     *     * @param name The document type name.     * @param publicId The declared public identifier for the     *        external DTD subset, or null if none was declared.     * @param systemId The declared system identifier for the     *        external DTD subset, or null if none was declared.     * @exception org.xml.sax.SAXException If a filter     *            further down the chain raises an exception.     * @see org.xml.sax.ext.LexicalHandler#startDTD     */    public void startDTD(String name, String publicId, String systemId)    throws SAXException {      //closeElement();        inDTD = true;        write("<!DOCTYPE ");        write(name);        boolean hasPublic = publicId != null && !publicId.equals("");        if (hasPublic) {            write(" PUBLIC \"");            write(publicId);            write('\"');        }        if (systemId != null && !systemId.equals("")) {            if (!hasPublic) {                write(" SYSTEM");            }            write(" \"");            write(systemId);            write('\"');        }        write(">\n\n");        super.startDTD(name, publicId, systemId);    }    /**     * Write end of DOCTYPE declaration.     *     * Pass the event on down the filter chain for further processing.     *     * @exception org.xml.sax.SAXException If a filter     *            further down the chain raises an exception.     * @see org.xml.sax.ext.LexicalHandler#endDTD     */    public void endDTD()    throws SAXException {        inDTD = false;        super.endDTD();    }        /*     * Write entity.     *     * Pass the event on down the filter chain for further processing.     *     * @param name The name of the entity.  If it is a parameter     *        entity, the name will begin with '%', and if it is the     *        external DTD subset, it will be "[dtd]".     * @exception org.xml.sax.SAXException If a filter     *            further down the chain raises an exception.     * @see org.xml.sax.ext.LexicalHandler#startEntity     */    public void startEntity(String name)    throws SAXException {        closeElement();        write('&');        write(name);        write(';');        super.startEntity(name);    }

⌨️ 快捷键说明

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