net.sf.saxon.event

Class CommentStripper

Implemented Interfaces:
Receiver, Result

public class CommentStripper
extends ProxyReceiver

The CommentStripper class is a filter that removes all comments and processing instructions. It also concatenates text nodes that are split by comments and PIs. This follows the rules for processing stylesheets.
Author:
Michael H. Kay

Field Summary

Fields inherited from class net.sf.saxon.event.ProxyReceiver

nextReceiver

Fields inherited from class net.sf.saxon.event.SequenceReceiver

pipelineConfiguration, previousAtomic, systemId

Constructor Summary

CommentStripper()
Default constructor for use in subclasses

Method Summary

void
characters(CharSequence chars, int locationId, int properties)
Handle a text node.
void
comment(CharSequence chars, int locationId, int properties)
Remove comments
void
endElement()
Callback interface for SAX: not for application use
void
processingInstruction(String name, CharSequence data, int locationId, int properties)
Remove processing instructions
void
startElement(int nameCode, int typeCode, int locationId, int properties)
Notify the start of an element

Methods inherited from class net.sf.saxon.event.ProxyReceiver

append, attribute, characters, close, comment, endDocument, endElement, getConfiguration, getDocumentLocator, getNamePool, getUnderlyingReceiver, namespace, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, startDocument, startElement

Methods inherited from class net.sf.saxon.event.SequenceReceiver

append, getConfiguration, getNamePool, getPipelineConfiguration, getSystemId, open, setPipelineConfiguration, setSystemId, setUnparsedEntity

Constructor Details

CommentStripper

public CommentStripper()
Default constructor for use in subclasses

Method Details

characters

public void characters(CharSequence chars,
                       int locationId,
                       int properties)
            throws XPathException
Handle a text node. Because we're often handling stylesheets on this path, whitespace text nodes will often be stripped but we can't strip them immediately because of the case [element] [!-- comment --]text[/element], where the space before the comment is considered significant. But it's worth going to some effort to avoid uncompressing the whitespace in the more common case, so that it can easily be detected and stripped downstream.
Specified by:
characters in interface Receiver
Overrides:
characters in interface ProxyReceiver

comment

public void comment(CharSequence chars,
                    int locationId,
                    int properties)
Remove comments
Specified by:
comment in interface Receiver
Overrides:
comment in interface ProxyReceiver

endElement

public void endElement()
            throws XPathException
Callback interface for SAX: not for application use
Specified by:
endElement in interface Receiver
Overrides:
endElement in interface ProxyReceiver

processingInstruction

public void processingInstruction(String name,
                                  CharSequence data,
                                  int locationId,
                                  int properties)
Remove processing instructions
Specified by:
processingInstruction in interface Receiver
Overrides:
processingInstruction in interface ProxyReceiver

startElement

public void startElement(int nameCode,
                         int typeCode,
                         int locationId,
                         int properties)
            throws XPathException
Notify the start of an element
Specified by:
startElement in interface Receiver
Overrides:
startElement in interface ProxyReceiver
Parameters:
nameCode - integer code identifying the name of the element within the name pool.
typeCode - integer code identifying the element's type within the name pool.
properties - properties of the element node