public interface Branch extends Node
Branch
interface defines the common behaviour for Nodes which
can contain child nodes (content) such as XML elements and documents. This
interface allows both elements and documents to be treated in a polymorphic
manner when changing or navigating child nodes (content).ANY_NODE, ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_REFERENCE_NODE, MAX_NODE_TYPE, NAMESPACE_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE, UNKNOWN_NODE
Modifier and Type | Method and Description |
---|---|
void |
add(Comment comment)
Adds the given
Comment to this branch. |
void |
add(Element element)
Adds the given
Element to this branch. |
void |
add(Node node)
Adds the given
Node or throws IllegalAddException
if the given node is not of a valid type. |
void |
add(ProcessingInstruction pi)
Adds the given
ProcessingInstruction to this branch. |
Element |
addElement(QName qname)
Adds a new
Element node with the given QName to
this branch and returns a reference to the new node. |
Element |
addElement(java.lang.String name)
Adds a new
Element node with the given name to this branch
and returns a reference to the new node. |
Element |
addElement(java.lang.String qualifiedName,
java.lang.String namespaceURI)
Adds a new
Element node with the given qualified name and
namespace URI to this branch and returns a reference to the new node. |
void |
appendContent(Branch branch)
Appends the content of the given branch to this branch instance.
|
void |
clearContent()
Clears the content for this branch, removing any
Node
instances this branch may contain. |
java.util.List<Node> |
content()
Returns the content nodes of this branch as a backed
List so that
the content of this branch may be modified directly using the
List interface. |
Element |
elementByID(java.lang.String elementID)
Returns the element of the given ID attribute value.
|
int |
indexOf(Node node)
Returns the index of the given node if it is a child node of this branch
or -1 if the given node is not a child node.
|
Node |
node(int index)
Returns the
Node at the specified index position. |
int |
nodeCount()
Returns the number of
Node instances that this branch
contains. |
java.util.Iterator<Node> |
nodeIterator()
Returns an iterator through the content nodes of this branch
|
void |
normalize()
Puts all
Text nodes in the full depth of the sub-tree
underneath this Node , including attribute nodes, into a
"normal" form where only structure (e.g., elements, comments, processing
instructions, CDATA sections, and entity references) separates
Text nodes, i.e., there are neither adjacent
Text nodes nor empty Text nodes. |
ProcessingInstruction |
processingInstruction(java.lang.String target)
DOCUMENT ME!
|
java.util.List<ProcessingInstruction> |
processingInstructions()
Returns a list of all the processing instructions in this branch.
|
java.util.List<ProcessingInstruction> |
processingInstructions(java.lang.String target)
Returns a list of the processing instructions for the given target.
|
boolean |
remove(Comment comment)
Removes the given
Comment if the node is an immediate
child of this branch. |
boolean |
remove(Element element)
Removes the given
Element if the node is an immediate
child of this branch. |
boolean |
remove(Node node)
Removes the given
Node if the node is an immediate child
of this branch. |
boolean |
remove(ProcessingInstruction pi)
Removes the given
ProcessingInstruction if the node is an
immediate child of this branch. |
boolean |
removeProcessingInstruction(java.lang.String target)
Removes the processing instruction for the given target if it exists
|
void |
setContent(java.util.List<Node> content)
Sets the contents of this branch as a
List of
Node instances. |
void |
setProcessingInstructions(java.util.List<ProcessingInstruction> listOfPIs)
Sets all the processing instructions for this branch
|
accept, asXML, asXPathResult, clone, createXPath, detach, getDocument, getName, getNodeType, getNodeTypeName, getParent, getPath, getPath, getStringValue, getText, getUniquePath, getUniquePath, hasContent, isReadOnly, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, setDocument, setName, setParent, setText, supportsParent, valueOf, write
Node node(int index) throws java.lang.IndexOutOfBoundsException
Node
at the specified index position.index
- the index of the node to return.Node
at the specified position.java.lang.IndexOutOfBoundsException
- if the index is out of range (index < 0 || index >=
nodeCount()
).int indexOf(Node node)
node
- the content child node to find.int nodeCount()
Node
instances that this branch
contains.Element elementByID(java.lang.String elementID)
elementID
- DOCUMENT ME!java.util.List<Node> content()
List
so that
the content of this branch may be modified directly using the
List
interface. The List
is backed by the
Branch
so that changes to the list are reflected in the
branch and vice versa.List
java.util.Iterator<Node> nodeIterator()
void setContent(java.util.List<Node> content)
List
of
Node
instances.content
- is the list of nodes to use as the content for this branch.void appendContent(Branch branch)
Collection.addAll(java.util.Collection)
method.branch
- is the branch whose content will be added to me.void clearContent()
Node
instances this branch may contain.java.util.List<ProcessingInstruction> processingInstructions()
java.util.List<ProcessingInstruction> processingInstructions(java.lang.String target)
target
- DOCUMENT ME!ProcessingInstruction processingInstruction(java.lang.String target)
target
- DOCUMENT ME!void setProcessingInstructions(java.util.List<ProcessingInstruction> listOfPIs)
listOfPIs
- DOCUMENT ME!Element addElement(java.lang.String name)
Element
node with the given name to this branch
and returns a reference to the new node.name
- is the name for the Element
node.Element
node.Element addElement(QName qname)
Element
node with the given QName
to
this branch and returns a reference to the new node.qname
- is the qualified name for the Element
node.Element
node.Element addElement(java.lang.String qualifiedName, java.lang.String namespaceURI)
Element
node with the given qualified name and
namespace URI to this branch and returns a reference to the new node.qualifiedName
- is the fully qualified name of the ElementnamespaceURI
- is the URI of the namespace to useElement
node.boolean removeProcessingInstruction(java.lang.String target)
target
- DOCUMENT ME!void add(Node node)
Node
or throws IllegalAddException
if the given node is not of a valid type. This is a polymorphic method
which will call the typesafe method for the node type such as
add(Element) or add(Comment).node
- is the given node to addvoid add(Comment comment)
Comment
to this branch. If the given node
already has a parent defined then an IllegalAddException
will be thrown.comment
- is the comment to be addedvoid add(Element element)
Element
to this branch. If the given node
already has a parent defined then an IllegalAddException
will be thrown.element
- is the element to be addedvoid add(ProcessingInstruction pi)
ProcessingInstruction
to this branch. If
the given node already has a parent defined then an
IllegalAddException
will be thrown.pi
- is the processing instruction to be addedboolean remove(Node node)
Node
if the node is an immediate child
of this branch. If the given node is not an immediate child of this
branch then the Node.detach()
method should be used instead. This
is a polymorphic method which will call the typesafe method for the node
type such as remove(Element) or remove(Comment).node
- is the given node to be removedboolean remove(Comment comment)
Comment
if the node is an immediate
child of this branch. If the given node is not an immediate child of this
branch then the Node.detach()
method should be used instead.comment
- is the comment to be removedboolean remove(Element element)
Element
if the node is an immediate
child of this branch. If the given node is not an immediate child of this
branch then the Node.detach()
method should be used instead.element
- is the element to be removedboolean remove(ProcessingInstruction pi)
ProcessingInstruction
if the node is an
immediate child of this branch. If the given node is not an immediate
child of this branch then the Node.detach()
method should be used
instead.pi
- is the processing instruction to be removedvoid normalize()
Text
nodes in the full depth of the sub-tree
underneath this Node
, including attribute nodes, into a
"normal" form where only structure (e.g., elements, comments, processing
instructions, CDATA sections, and entity references) separates
Text
nodes, i.e., there are neither adjacent
Text
nodes nor empty Text
nodes. This can
be used to ensure that the DOM view of a document is the same as if it
were saved and re-loaded, and is useful when operations (such as XPointer
lookups) that depend on a particular document tree structure are to be
used.In cases where the document contains CDATASections
,
the normalize operation alone may not be sufficient, since XPointers do
not differentiate between Text
nodes and
CDATASection
nodes.