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
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.
- Author:
- Andy Clark, Ronald Brill
-
-
Constructor Summary
Constructors Constructor Description HTMLWriterFilter()Constructs 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcharacters(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 intgetElementDepth()protected booleangetNormalize()protected booleanhasSeenRootElement()protected voidprint(String content)protected 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 org.htmlunit.cyberneko.filters.DefaultFilter
doctypeDecl, endCDATA, endDocument, getDocumentHandler, getDocumentSource, getFeatureDefault, getPropertyDefault, getRecognizedFeatures, getRecognizedProperties, merge, processingInstruction, reset, setDocumentHandler, setDocumentSource, setFeature, setProperty, startCDATA, xmlDecl
-
-
-
-
Constructor Detail
-
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 Detail
-
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
public void comment(XMLString text, Augmentations augs) throws XNIException
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
public void characters(XMLString text, Augmentations augs) throws XNIException
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
public void endElement(QName element, Augmentations augs) throws XNIException
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
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()
-
-