Class HTMLWriterFilter

java.lang.Object
org.htmlunit.cyberneko.filters.DefaultFilter
org.htmlunit.cyberneko.filters.HTMLWriterFilter
All Implemented Interfaces:
HTMLComponent, XMLComponent, XMLDocumentFilter, XMLDocumentSource, XMLDocumentHandler

public class HTMLWriterFilter extends DefaultFilter
An HTML writer written as a filter. Besides serializing the HTML event stream, the writer also passes the document events to the next stage in the pipeline. This allows applications to insert writer filters between other custom filters for debugging purposes.

Since an HTML document may have specified its encoding using the <META> tag and http-equiv/content attributes, the writer will automatically change any character set specified in this tag to match the encoding of the output stream. Therefore, the character encoding name used to construct the writer should be an official IANA encoding name and not a Java encoding name.

Note: The modified character set in the <META> tag is not propagated to the next stage in the pipeline. The changed value is only output to the stream; the original value is sent to the next stage in the pipeline.

  • Field Details

    • encoding_

      private String encoding_
      The encoding.
    • printer_

      private PrintWriter printer_
      The print writer used for serializing the document with the appropriate character encoding.
    • seenRootElement_

      private boolean seenRootElement_
      Seen root element.
    • elementDepth_

      private int elementDepth_
      Element depth.
    • normalize_

      private boolean normalize_
      Normalize character content.
    • htmlElements_

      private final HTMLElements htmlElements_
  • Constructor Details

    • HTMLWriterFilter

      public HTMLWriterFilter()
      Constructs a writer filter that prints to standard out.
    • HTMLWriterFilter

      public HTMLWriterFilter(OutputStream outputStream, String encoding) throws UnsupportedEncodingException
      Constructs a writer filter using the specified output stream and encoding.
      Parameters:
      outputStream - The output stream to write to.
      encoding - The encoding to be used for the output. The encoding name should be an official IANA encoding name.
      Throws:
      UnsupportedEncodingException
    • HTMLWriterFilter

      public HTMLWriterFilter(Writer writer, String encoding, HTMLElements htmlElements)
      Constructs a writer filter using the specified Java writer and encoding.
      Parameters:
      writer - The Java writer to write to.
      encoding - The encoding to be used for the output. The encoding name should be an official IANA encoding name.
  • Method Details

    • startDocument

      public void startDocument(XMLLocator locator, String encoding, NamespaceContext nscontext, Augmentations augs) throws XNIException
      Start document.
      Specified by:
      startDocument in interface XMLDocumentHandler
      Overrides:
      startDocument in class DefaultFilter
      Parameters:
      locator - The document locator, or null if the document location cannot be reported during the parsing of this document. However, it is strongly recommended that a locator be supplied that can at least report the system identifier of the document.
      encoding - The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal entities or a document entity that is parsed from a java.io.Reader).
      nscontext - The namespace context in effect at the start of this document. This object represents the current context. Implementors of this class are responsible for copying the namespace bindings from the the current context (and its parent contexts) if that information is important.
      augs - Additional information that may include infoset augmentations
      Throws:
      XNIException - Thrown by handler to signal an error.
    • comment

      public void comment(XMLString text, Augmentations augs) throws XNIException
      Comment.
      Specified by:
      comment in interface XMLDocumentHandler
      Overrides:
      comment in class DefaultFilter
      Parameters:
      text - The text in the comment.
      augs - Additional information that may include infoset augmentations
      Throws:
      XNIException - Thrown by application to signal an error.
    • startElement

      public void startElement(QName element, XMLAttributes attributes, Augmentations augs) throws XNIException
      Start element.
      Specified by:
      startElement in interface XMLDocumentHandler
      Overrides:
      startElement in class DefaultFilter
      Parameters:
      element - The name of the element.
      attributes - The element attributes.
      augs - Additional information that may include infoset augmentations
      Throws:
      XNIException - Thrown by handler to signal an error.
    • emptyElement

      public void emptyElement(QName element, XMLAttributes attributes, Augmentations augs) throws XNIException
      Empty element.
      Specified by:
      emptyElement in interface XMLDocumentHandler
      Overrides:
      emptyElement in class DefaultFilter
      Parameters:
      element - The name of the element.
      attributes - The element attributes.
      augs - Additional information that may include infoset augmentations
      Throws:
      XNIException - Thrown by handler to signal an error.
    • characters

      public void characters(XMLString text, Augmentations augs) throws XNIException
      Characters.
      Specified by:
      characters in interface XMLDocumentHandler
      Overrides:
      characters in class DefaultFilter
      Parameters:
      text - The content.
      augs - Additional information that may include infoset augmentations
      Throws:
      XNIException - Thrown by handler to signal an error.
    • endElement

      public void endElement(QName element, Augmentations augs) throws XNIException
      End element.
      Specified by:
      endElement in interface XMLDocumentHandler
      Overrides:
      endElement in class DefaultFilter
      Parameters:
      element - The name of the element.
      augs - Additional information that may include infoset augmentations
      Throws:
      XNIException - Thrown by handler to signal an error.
    • printAttributeValue

      protected void printAttributeValue(String text)
      Print attribute value.
    • printCharacters

      protected void printCharacters(XMLString text, boolean normalize)
      Print characters.
    • printStartElement

      protected void printStartElement(QName element, XMLAttributes attributes)
      Print start element.
    • printEndElement

      protected void printEndElement(QName element)
      Print end element.
    • print

      protected void print(String content)
    • hasSeenRootElement

      protected boolean hasSeenRootElement()
    • getElementDepth

      protected int getElementDepth()
    • getNormalize

      protected boolean getNormalize()