Package org.htmlunit.cyberneko.filters
Class HTMLWriterFilter
java.lang.Object
org.htmlunit.cyberneko.filters.DefaultFilter
org.htmlunit.cyberneko.filters.HTMLWriterFilter
- All Implemented Interfaces:
HTMLComponent
,XMLComponent
,XMLDocumentFilter
,XMLDocumentSource
,XMLDocumentHandler
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 Summary
FieldsModifier and TypeFieldDescriptionprivate int
Element depth.private String
The encoding.private final HTMLElements
private boolean
Normalize character content.private PrintWriter
The print writer used for serializing the document with the appropriate character encoding.private boolean
Seen root element. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a writer filter that prints to standard out.HTMLWriterFilter
(OutputStream outputStream, String encoding) Constructs a writer filter using the specified output stream and encoding.HTMLWriterFilter
(Writer writer, String encoding, HTMLElements htmlElements) Constructs a writer filter using the specified Java writer and encoding. -
Method Summary
Modifier and TypeMethodDescriptionvoid
characters
(XMLString text, Augmentations augs) Characters.void
comment
(XMLString text, Augmentations augs) Comment.void
emptyElement
(QName element, XMLAttributes attributes, Augmentations augs) Empty element.void
endElement
(QName element, Augmentations augs) End element.protected int
protected boolean
protected boolean
protected void
protected void
printAttributeValue
(String text) Print attribute value.protected void
printCharacters
(XMLString text, boolean normalize) Print characters.protected void
printEndElement
(QName element) Print end element.protected void
printStartElement
(QName element, XMLAttributes attributes) Print start element.void
startDocument
(XMLLocator locator, String encoding, NamespaceContext nscontext, Augmentations augs) Start document.void
startElement
(QName element, XMLAttributes attributes, Augmentations augs) Start element.Methods inherited from class org.htmlunit.cyberneko.filters.DefaultFilter
doctypeDecl, endCDATA, endDocument, getDocumentHandler, getDocumentSource, getFeatureDefault, getPropertyDefault, getRecognizedFeatures, getRecognizedProperties, merge, processingInstruction, reset, setDocumentHandler, setDocumentSource, setFeature, setProperty, startCDATA, xmlDecl
-
Field Details
-
encoding_
The encoding. -
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_
-
-
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
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 interfaceXMLDocumentHandler
- Overrides:
startDocument
in classDefaultFilter
- 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
Comment.- Specified by:
comment
in interfaceXMLDocumentHandler
- Overrides:
comment
in classDefaultFilter
- 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 interfaceXMLDocumentHandler
- Overrides:
startElement
in classDefaultFilter
- 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 interfaceXMLDocumentHandler
- Overrides:
emptyElement
in classDefaultFilter
- 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
Characters.- Specified by:
characters
in interfaceXMLDocumentHandler
- Overrides:
characters
in classDefaultFilter
- Parameters:
text
- The content.augs
- Additional information that may include infoset augmentations- Throws:
XNIException
- Thrown by handler to signal an error.
-
endElement
End element.- Specified by:
endElement
in interfaceXMLDocumentHandler
- Overrides:
endElement
in classDefaultFilter
- 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
Print attribute value. -
printCharacters
Print characters. -
printStartElement
Print start element. -
printEndElement
Print end element. -
print
-
hasSeenRootElement
protected boolean hasSeenRootElement() -
getElementDepth
protected int getElementDepth() -
getNormalize
protected boolean getNormalize()
-