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

📄 jdomsource.java

📁 openlogic-jdom-1.1-all-src-1.zip 可以用于操作xml文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
   * Sets the SAX InputSource to be used for the Source.   * <p>   * As this implementation only supports JDOM document as data   * source, this method always throws an   * {@link UnsupportedOperationException}.   * </p>   *   * @param  inputSource   a valid InputSource reference.   *   * @throws UnsupportedOperationException   always!   */  public void setInputSource(InputSource inputSource)                                  throws UnsupportedOperationException {    throw new UnsupportedOperationException();  }  /**   * Set the XMLReader to be used for the Source.   * <p>   * As this implementation only supports JDOM document as data   * source, this method throws an   * {@link UnsupportedOperationException} if the provided reader   * object does not implement the SAX {@link XMLFilter}   * interface.  Otherwise, the JDOM document reader will be   * attached as parent of the filter chain.</p>   *   * @param  reader   a valid XMLReader or XMLFilter reference.   *   * @throws UnsupportedOperationException   if <code>reader</code>   *                                         is not a SAX   *                                         {@link XMLFilter}.   * @see    #getXMLReader   */  public void setXMLReader(XMLReader reader)                              throws UnsupportedOperationException {    if (reader instanceof XMLFilter) {      // Connect the filter chain to a document reader.      XMLFilter filter = (XMLFilter)reader;      while (filter.getParent() instanceof XMLFilter) {        filter = (XMLFilter)(filter.getParent());      }      filter.setParent(buildDocumentReader());      // Read XML data from filter chain.      this.xmlReader = reader;    }    else {      throw new UnsupportedOperationException();    }  }  /**   * Returns the XMLReader to be used for the Source.   * <p>   * This implementation returns a specific XMLReader reading   * the XML data from the source JDOM document.   * </p>   *   * @return an XMLReader reading the XML data from the source   *         JDOM document.   */  public XMLReader getXMLReader() {    if (this.xmlReader == null) {      this.xmlReader = buildDocumentReader();    }    return this.xmlReader;  }    /**   * Build an XMLReader to be used for the source. This will   * create a new instance of DocumentReader with an    * EntityResolver instance if available.   *    * @return XMLReader reading the XML data from the source   * 		JDOM document with an optional EntityResolver   */  private XMLReader buildDocumentReader() {	  DocumentReader reader = new DocumentReader();	  if (resolver != null)		  reader.setEntityResolver(resolver);	  return reader;  }  //=========================================================================  // JDOMInputSource nested class  //=========================================================================  /**   * A subclass of the SAX InputSource interface that wraps a JDOM   * Document.   * <p>   * This class is nested in JDOMSource as it is not intented to   * be used independently of its friend: DocumentReader.   * </p>   *   * @see    org.jdom.Document   */  private static class JDOMInputSource extends InputSource {    /**     * The source as a JDOM document or a list of JDOM nodes.     */    private Object source = null;    /**     * Builds a InputSource wrapping the specified JDOM Document.     *     * @param  document   the source document.     */    public JDOMInputSource(Document document) {      this.source = document;    }    /**     * Builds a InputSource wrapping a list of JDOM nodes.     *     * @param  nodes   the source JDOM nodes.     */    public JDOMInputSource(List nodes) {      this.source = nodes;    }    /**     * Returns the source.     *     * @return the source as a JDOM document or a list of JDOM nodes.     */    public Object getSource() {      return source;    }    //-------------------------------------------------------------------------    // InputSource overwritten methods    //-------------------------------------------------------------------------    /**     * Sets the character stream for this input source.     * <p>     * This implementation always throws an     * {@link UnsupportedOperationException} as the only source     * stream supported is the source JDOM document.     * </p>     *     * @param  characterStream   a character stream containing     *                           an XML document.     *     * @throws UnsupportedOperationException  always!     */    public void setCharacterStream(Reader characterStream)                                      throws UnsupportedOperationException {      throw new UnsupportedOperationException();    }    /**     * Gets the character stream for this input source.     * <p>     * Note that this method is only provided to make this     * InputSource implementation acceptable by any XML     * parser.  As it generates an in-memory string representation     * of the JDOM document, it is quite inefficient from both     * speed and memory consumption points of view.     * </p>     *     * @return a Reader to a string representation of the     *         source JDOM document.     */    public Reader getCharacterStream() {      Object src    = this.getSource();      Reader reader = null;      if (src instanceof Document) {        // Get an in-memory string representation of the document        // and return a reader on it.        reader = new StringReader(                            new XMLOutputter().outputString((Document)src));      }      else {        if (src instanceof List) {          reader = new StringReader(                            new XMLOutputter().outputString((List)src));        }        // Else: No source, no reader!      }      return reader;    }  }  //=========================================================================  // DocumentReader nested class  //=========================================================================  /**   * An implementation of the SAX2 XMLReader interface that presents   * a SAX view of a JDOM Document.  The actual generation of the   * SAX events is delegated to JDOM's SAXOutputter.   *   * @see    org.jdom.Document   * @see    org.jdom.output.SAXOutputter   */  private static class DocumentReader   extends    SAXOutputter                                        implements XMLReader    {    /**     * Public default constructor.     */    public DocumentReader() {      super();    }    //----------------------------------------------------------------------    // SAX XMLReader interface support    //----------------------------------------------------------------------    /**     * Parses an XML document from a system identifier (URI).     * <p>     * This implementation does not support reading XML data from     * system identifiers, only from JDOM documents.  Hence,     * this method always throws a {@link SAXNotSupportedException}.     * </p>     *     * @param  systemId   the system identifier (URI).     *     * @throws SAXNotSupportedException   always!     */    public void parse(String systemId) throws SAXNotSupportedException {      throw new SAXNotSupportedException(                       "Only JDOM Documents are supported as input");    }    /**     * Parses an XML document.     * <p>     * The methods accepts only <code>JDOMInputSource</code>s     * instances as input sources.     * </p>     *     * @param  input   the input source for the top-level of the     *                  XML document.     *     * @throws SAXException               any SAX exception,     *                                    possibly wrapping     *                                    another exception.     * @throws SAXNotSupportedException   if the input source does     *                                    not wrap a JDOM document.     */    public void parse(InputSource input) throws SAXException {      if (input instanceof JDOMInputSource) {        try {          Object source = ((JDOMInputSource)input).getSource();          if (source instanceof Document) {            this.output((Document)source);          }          else {            this.output((List)source);          }        }        catch (JDOMException e) {          throw new SAXException(e.getMessage(), e);        }      }      else {        throw new SAXNotSupportedException(                         "Only JDOM Documents are supported as input");      }    }  }}

⌨️ 快捷键说明

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