LSSerializerFilters provide applications the ability to 
 examine nodes as they are being serialized and decide what nodes should 
 be serialized or not. The 
LSSerializerFilter interface is 
 based on the 
NodeFilter interface defined in [
DOM Level 2 Traversal and      Range]
 . 
 
 Document, DocumentType, 
 DocumentFragment, Notation, Entity
 , and children of Attr nodes are not passed to the filter. 
 The child nodes of an EntityReference node are only passed 
 to the filter if the EntityReference node is skipped by the 
 method LSParserFilter.acceptNode(). 
 
 When serializing an Element, the element is passed to the 
 filter before any of its attributes are passed to the filter. Namespace 
 declaration attributes, and default attributes (except in the case when "
 discard-default-content" is set to false), are never passed 
 to the filter. 
 
 The result of any attempt to modify a node passed to a 
 LSSerializerFilter is implementation dependent. 
 
 DOM applications must not raise exceptions in a filter. The effect of 
 throwing exceptions from a filter is DOM implementation dependent. 
 
 For efficiency, a node passed to the filter may not be the same as the 
 one that is actually in the tree. And the actual node (node object 
 identity) may be reused during the process of filtering and serializing a 
 document. 
 
See also the Document Object Model (DOM) Level 3 Load
and Save Specification.