|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnu.xom.NodeFactory
nu.xom.samples.RDDLFilter
public class RDDLFilter
Demonstrates using the Builder
and a custom
NodeFactory
to filter out start-tags and
end-tags while leaving the content intact. Specifically,
we filter out all the elements in the RDDL namespace.
Field Summary | |
---|---|
static java.lang.String |
RDDL_NAMESPACE
|
Constructor Summary | |
---|---|
RDDLFilter()
|
Method Summary | |
---|---|
nu.xom.Nodes |
finishMakingElement(nu.xom.Element element)
Signals the end of an element. |
static void |
main(java.lang.String[] args)
|
nu.xom.Nodes |
makeDocType(java.lang.String rootElementName,
java.lang.String publicID,
java.lang.String systemID)
Returns a new Nodes object containing a
DocType object with the specified root element
name, system ID, and public ID. |
nu.xom.Element |
startMakingElement(java.lang.String name,
java.lang.String namespace)
Creates a new Element in the specified namespace
with the specified name. |
Methods inherited from class nu.xom.NodeFactory |
---|
finishMakingDocument, makeAttribute, makeComment, makeProcessingInstruction, makeRootElement, makeText, startMakingDocument |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String RDDL_NAMESPACE
Constructor Detail |
---|
public RDDLFilter()
Method Detail |
---|
public nu.xom.Element startMakingElement(java.lang.String name, java.lang.String namespace)
nu.xom.NodeFactory
Creates a new Element
in the specified namespace
with the specified name.
Subclasses may change the name, namespace, content, or other
characteristics of the Element
returned.
Subclasses may return null to indicate the
Element
should not be created.
However, doing so will only remove the element's start-tag and
end-tag from the result tree. Any content inside the element
will be attached to the element's parent by default, unless it
too is filtered. To remove an entire element, return an empty
Nodes
object from the
finishMakingElement()
method.
startMakingElement
in class nu.xom.NodeFactory
name
- the qualified name of the elementnamespace
- the namespace URI of the element
public nu.xom.Nodes finishMakingElement(nu.xom.Element element)
nu.xom.NodeFactory
Signals the end of an element. This method should return
the Nodes
to be added to the tree.
They need not contain the Element
that
was passed to this method, though most often they will.
By default the Nodes
returned contain
only the built element. However, subclasses may return
a list containing any number of nodes, all of which will be
added to the tree at the current position in the order given by
the list (subject to the usual well-formedness constraints, of
course. For instance, the list should not contain a
DocType
object unless the element is the root
element, and the document does not already have a
DocType
). All of the nodes returned must be
parentless. If this method returns an empty list,
then the element (including all its contents) is not included
in the finished document.
To process an element at a time, override this method in a
subclass so that it functions as a callback. When you're done
processing the Element
, return an empty list so
that it will be removed from the tree and garbage collected.
Be careful not to return an empty list for the root element
though. That is, when the element passed to this method is the
root element, the list returned must contain exactly one
Element
object. The simplest way to check this
is testing if element.getParent() instanceof
Document
.
Do not detach element
or any of its ancestors
while inside this method. Doing so can royally muck up the
build.
finishMakingElement
in class nu.xom.NodeFactory
element
- the finished Element
public nu.xom.Nodes makeDocType(java.lang.String rootElementName, java.lang.String publicID, java.lang.String systemID)
nu.xom.NodeFactory
Returns a new Nodes
object containing a
DocType
object with the specified root element
name, system ID, and public ID.
Subclasses may change the root element name, public ID,
system ID, or other characteristics of the DocType
returned. Subclasses may change the nodes returned from this
method. They may return a Nodes
object containing
any number of comments and processing instructions which are
appended to the current parent node. This Nodes
object may not contain any Document
,
Element
, Attribute
, or
Text
objects. All of the nodes returned must be
parentless. Subclasses may return an empty Nodes
to
indicate the DocType
should not be included in the
finished document.
makeDocType
in class nu.xom.NodeFactory
rootElementName
- the declared, qualified name
for the root elementpublicID
- the public ID of the external DTD subsetsystemID
- the URL of the external DTD subset
public static void main(java.lang.String[] args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |