Package org.codelibs.nekohtml.filters
Class Writer
- java.lang.Object
-
- org.codelibs.nekohtml.filters.DefaultFilter
-
- org.codelibs.nekohtml.filters.Writer
-
- All Implemented Interfaces:
org.apache.xerces.xni.parser.XMLComponent,org.apache.xerces.xni.parser.XMLDocumentFilter,org.apache.xerces.xni.parser.XMLDocumentSource,org.apache.xerces.xni.XMLDocumentHandler,HTMLComponent
public class Writer 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.
- Version:
- $Id: Writer.java,v 1.7 2005/02/14 04:01:33 andyc Exp $
- Author:
- Andy Clark
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.StringAUGMENTATIONSAugmentations feature identifier.protected intfElementDepthElement depth.protected java.lang.StringfEncodingThe encoding.protected static java.lang.StringFILTERSFilters property identifier.protected booleanfNormalizeNormalize character content.protected booleanfPrintCharsPrint characters.protected java.io.PrintWriterfPrinterThe print writer used for serializing the document with the appropriate character encoding.protected booleanfSeenHttpEquivSeen http-equiv directive.protected booleanfSeenRootElementSeen root element.static java.lang.StringNOTIFY_CHAR_REFSNotify character entity references.static java.lang.StringNOTIFY_HTML_BUILTIN_REFSNotify built-in entity references.-
Fields inherited from class org.codelibs.nekohtml.filters.DefaultFilter
fDocumentHandler, fDocumentSource
-
-
Constructor Summary
Constructors Constructor Description Writer()Constructs a writer filter that prints to standard out.Writer(java.io.OutputStream outputStream, java.lang.String encoding)Constructs a writer filter using the specified output stream and encoding.Writer(java.io.Writer writer, java.lang.String encoding)Constructs a writer filter using the specified Java writer and encoding.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcharacters(org.apache.xerces.xni.XMLString text, org.apache.xerces.xni.Augmentations augs)Characters.voidcomment(org.apache.xerces.xni.XMLString text, org.apache.xerces.xni.Augmentations augs)Comment.voidemptyElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.XMLAttributes attributes, org.apache.xerces.xni.Augmentations augs)Empty element.voidendElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.Augmentations augs)End element.voidendGeneralEntity(java.lang.String name, org.apache.xerces.xni.Augmentations augs)End general entity.static voidmain(java.lang.String[] argv)Main.protected voidprintAttributeValue(java.lang.String text)Print attribute value.protected voidprintCharacters(org.apache.xerces.xni.XMLString text, boolean normalize)Print characters.protected voidprintEndElement(org.apache.xerces.xni.QName element)Print end element.protected voidprintEntity(java.lang.String name)Print entity.protected voidprintStartElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.XMLAttributes attributes)Print start element.voidstartDocument(org.apache.xerces.xni.XMLLocator locator, java.lang.String encoding, org.apache.xerces.xni.Augmentations augs)Start document.voidstartDocument(org.apache.xerces.xni.XMLLocator locator, java.lang.String encoding, org.apache.xerces.xni.NamespaceContext nscontext, org.apache.xerces.xni.Augmentations augs)Start document.voidstartElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.XMLAttributes attributes, org.apache.xerces.xni.Augmentations augs)Start element.voidstartGeneralEntity(java.lang.String name, org.apache.xerces.xni.XMLResourceIdentifier id, java.lang.String encoding, org.apache.xerces.xni.Augmentations augs)Start general entity.-
Methods inherited from class org.codelibs.nekohtml.filters.DefaultFilter
doctypeDecl, endCDATA, endDocument, endPrefixMapping, getDocumentHandler, getDocumentSource, getFeatureDefault, getPropertyDefault, getRecognizedFeatures, getRecognizedProperties, ignorableWhitespace, merge, processingInstruction, reset, setDocumentHandler, setDocumentSource, setFeature, setProperty, startCDATA, startPrefixMapping, textDecl, xmlDecl
-
-
-
-
Field Detail
-
NOTIFY_CHAR_REFS
public static final java.lang.String NOTIFY_CHAR_REFS
Notify character entity references.- See Also:
- Constant Field Values
-
NOTIFY_HTML_BUILTIN_REFS
public static final java.lang.String NOTIFY_HTML_BUILTIN_REFS
Notify built-in entity references.- See Also:
- Constant Field Values
-
AUGMENTATIONS
protected static final java.lang.String AUGMENTATIONS
Augmentations feature identifier.- See Also:
- Constant Field Values
-
FILTERS
protected static final java.lang.String FILTERS
Filters property identifier.- See Also:
- Constant Field Values
-
fEncoding
protected java.lang.String fEncoding
The encoding.
-
fPrinter
protected java.io.PrintWriter fPrinter
The print writer used for serializing the document with the appropriate character encoding.
-
fSeenRootElement
protected boolean fSeenRootElement
Seen root element.
-
fSeenHttpEquiv
protected boolean fSeenHttpEquiv
Seen http-equiv directive.
-
fElementDepth
protected int fElementDepth
Element depth.
-
fNormalize
protected boolean fNormalize
Normalize character content.
-
fPrintChars
protected boolean fPrintChars
Print characters.
-
-
Constructor Detail
-
Writer
public Writer()
Constructs a writer filter that prints to standard out.
-
Writer
public Writer(java.io.OutputStream outputStream, java.lang.String encoding) throws java.io.UnsupportedEncodingExceptionConstructs 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:
java.io.UnsupportedEncodingException
-
Writer
public Writer(java.io.Writer writer, java.lang.String encoding)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(org.apache.xerces.xni.XMLLocator locator, java.lang.String encoding, org.apache.xerces.xni.NamespaceContext nscontext, org.apache.xerces.xni.Augmentations augs)Start document.- Specified by:
startDocumentin interfaceorg.apache.xerces.xni.XMLDocumentHandler- Overrides:
startDocumentin classDefaultFilter
-
startDocument
public void startDocument(org.apache.xerces.xni.XMLLocator locator, java.lang.String encoding, org.apache.xerces.xni.Augmentations augs)Start document.- Overrides:
startDocumentin classDefaultFilter
-
comment
public void comment(org.apache.xerces.xni.XMLString text, org.apache.xerces.xni.Augmentations augs)Comment.- Specified by:
commentin interfaceorg.apache.xerces.xni.XMLDocumentHandler- Overrides:
commentin classDefaultFilter
-
startElement
public void startElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.XMLAttributes attributes, org.apache.xerces.xni.Augmentations augs)Start element.- Specified by:
startElementin interfaceorg.apache.xerces.xni.XMLDocumentHandler- Overrides:
startElementin classDefaultFilter
-
emptyElement
public void emptyElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.XMLAttributes attributes, org.apache.xerces.xni.Augmentations augs)Empty element.- Specified by:
emptyElementin interfaceorg.apache.xerces.xni.XMLDocumentHandler- Overrides:
emptyElementin classDefaultFilter
-
characters
public void characters(org.apache.xerces.xni.XMLString text, org.apache.xerces.xni.Augmentations augs)Characters.- Specified by:
charactersin interfaceorg.apache.xerces.xni.XMLDocumentHandler- Overrides:
charactersin classDefaultFilter
-
endElement
public void endElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.Augmentations augs)End element.- Specified by:
endElementin interfaceorg.apache.xerces.xni.XMLDocumentHandler- Overrides:
endElementin classDefaultFilter
-
startGeneralEntity
public void startGeneralEntity(java.lang.String name, org.apache.xerces.xni.XMLResourceIdentifier id, java.lang.String encoding, org.apache.xerces.xni.Augmentations augs)Start general entity.- Specified by:
startGeneralEntityin interfaceorg.apache.xerces.xni.XMLDocumentHandler- Overrides:
startGeneralEntityin classDefaultFilter
-
endGeneralEntity
public void endGeneralEntity(java.lang.String name, org.apache.xerces.xni.Augmentations augs)End general entity.- Specified by:
endGeneralEntityin interfaceorg.apache.xerces.xni.XMLDocumentHandler- Overrides:
endGeneralEntityin classDefaultFilter
-
printAttributeValue
protected void printAttributeValue(java.lang.String text)
Print attribute value.
-
printCharacters
protected void printCharacters(org.apache.xerces.xni.XMLString text, boolean normalize)Print characters.
-
printStartElement
protected void printStartElement(org.apache.xerces.xni.QName element, org.apache.xerces.xni.XMLAttributes attributes)Print start element.
-
printEndElement
protected void printEndElement(org.apache.xerces.xni.QName element)
Print end element.
-
printEntity
protected void printEntity(java.lang.String name)
Print entity.
-
main
public static void main(java.lang.String[] argv) throws java.lang.ExceptionMain.- Throws:
java.lang.Exception
-
-