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 intElement depth.private StringThe encoding.private final HTMLElementsprivate booleanNormalize character content.private PrintWriterThe print writer used for serializing the document with the appropriate character encoding.private booleanSeen 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 TypeMethodDescriptionvoidcharacters(XMLString text, Augmentations augs) Characters.voidcomment(XMLString text, Augmentations augs) Comment.voidemptyElement(QName element, XMLAttributes attributes, Augmentations augs) Empty element.voidendElement(QName element, Augmentations augs) End element.protected intprotected booleanprotected booleanprotected voidprotected voidprintAttributeValue(String text) Print attribute value.protected voidprintCharacters(XMLString text, boolean normalize) Print characters.protected voidprintEndElement(QName element) Print end element.protected voidprintStartElement(QName element, XMLAttributes attributes) Print start element.voidstartDocument(XMLLocator locator, String encoding, NamespaceContext nscontext, Augmentations augs) Start document.voidstartElement(QName element, XMLAttributes attributes, Augmentations augs) Start element.Methods inherited from class 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:
startDocumentin interfaceXMLDocumentHandler- Overrides:
startDocumentin 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:
commentin interfaceXMLDocumentHandler- Overrides:
commentin 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:
startElementin interfaceXMLDocumentHandler- Overrides:
startElementin 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:
emptyElementin interfaceXMLDocumentHandler- Overrides:
emptyElementin 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:
charactersin interfaceXMLDocumentHandler- Overrides:
charactersin 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:
endElementin interfaceXMLDocumentHandler- Overrides:
endElementin 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()
-