public class DOMDocument extends DefaultDocument implements Document
DOMDocument
implements an XML document which
supports the W3C DOM API.
Modifier and Type | Field and Description |
---|---|
private static DOMDocumentFactory |
DOCUMENT_FACTORY
The
DocumentFactory instance used by default |
EMPTY_ITERATOR, EMPTY_LIST
DEFAULT_CONTENT_LIST_SIZE, outputFormat
NODE_TYPE_NAMES
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
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
Constructor and Description |
---|
DOMDocument() |
DOMDocument(DocumentType docType) |
DOMDocument(Element rootElement) |
DOMDocument(Element rootElement,
DocumentType docType) |
DOMDocument(String name) |
DOMDocument(String name,
Element rootElement,
DocumentType docType) |
Modifier and Type | Method and Description |
---|---|
Node |
appendChild(Node newChild)
Adds the node
newChild to the end of the list of children
of this node. |
Node |
cloneNode(boolean deep)
Returns a duplicate of this node, i.e., serves as a generic copy
constructor for nodes.
|
Attr |
createAttribute(String name)
Creates an
Attr of the given name. |
Attr |
createAttributeNS(String namespaceURI,
String qualifiedName)
Creates an attribute of the given qualified name and namespace URI.
|
CDATASection |
createCDATASection(String data)
Creates a
CDATASection node whose value is the specified
string. |
Comment |
createComment(String data)
Creates a
Comment node given the specified string. |
DocumentFragment |
createDocumentFragment()
Creates an empty
DocumentFragment object. |
Element |
createElement(String tagName)
Creates an element of the type specified.
|
Element |
createElementNS(String namespaceURI,
String qualifiedName)
Creates an element of the given qualified name and namespace URI.
|
EntityReference |
createEntityReference(String name)
Creates an
EntityReference object. |
ProcessingInstruction |
createProcessingInstruction(String target,
String data)
Creates a
ProcessingInstruction node given the specified
name and data strings. |
Text |
createTextNode(String data)
Creates a
Text node given the specified string. |
NamedNodeMap |
getAttributes()
A
NamedNodeMap containing the attributes of this node (if
it is an Element ) or null otherwise. |
NodeList |
getChildNodes()
A
NodeList that contains all children of this node. |
DocumentType |
getDoctype()
The Document Type Declaration (see
DocumentType )
associated with this document. |
Element |
getDocumentElement()
This is a convenience attribute that allows direct access to the child
node that is the root element of the document.
|
protected DocumentFactory |
getDocumentFactory() |
Element |
getElementById(String elementId)
Returns the
Element whose ID is given by
elementId . |
NodeList |
getElementsByTagName(String name)
Returns a
NodeList of all the Elements with a
given tag name in the order in which they are encountered in a
preorder traversal of the Document tree. |
NodeList |
getElementsByTagNameNS(String namespaceURI,
String localName)
Returns a
NodeList of all the Elements with a
given local name and namespace URI in the order in which they are
encountered in a preorder traversal of the Document tree. |
Node |
getFirstChild()
The first child of this node.
|
DOMImplementation |
getImplementation()
The
DOMImplementation object that handles this document. |
Node |
getLastChild()
The last child of this node.
|
String |
getLocalName()
Returns the local part of the qualified name of this node.
|
String |
getNamespaceURI()
The namespace URI of this node, or
null if it is
unspecified. |
Node |
getNextSibling()
The node immediately following this node.
|
String |
getNodeName()
The name of this node, depending on its type; see the table above.
|
String |
getNodeValue()
The value of this node, depending on its type; see the table above.
|
Document |
getOwnerDocument()
The
Document object associated with this node. |
Node |
getParentNode()
The parent of this node.
|
String |
getPrefix()
The namespace prefix of this node, or
null if it is
unspecified. |
Node |
getPreviousSibling()
The node immediately preceding this node.
|
boolean |
hasAttributes()
Returns whether this node (if it is an element) has any attributes.
|
boolean |
hasChildNodes()
Returns whether this node has any children.
|
Node |
importNode(Node importedNode,
boolean deep)
Imports a node from another document to this document.
|
Node |
insertBefore(Node newChild,
Node refChild)
Inserts the node
newChild before the existing child node
refChild . |
boolean |
isSupported(String feature,
String version)
Tests whether the DOM implementation implements a specific feature and
that feature is supported by this node.
|
Node |
removeChild(Node oldChild)
Removes the child node indicated by
oldChild from the list
of children, and returns it. |
Node |
replaceChild(Node newChild,
Node oldChild)
Replaces the child node
oldChild with newChild
in the list of children, and returns the oldChild node. |
void |
setNodeValue(String nodeValue) |
void |
setPrefix(String prefix) |
addDocType, addNode, clearContent, clone, contentList, getDocType, getEntityResolver, getName, getRootElement, processingInstruction, processingInstructions, processingInstructions, removeNode, removeProcessingInstruction, rootElementAdded, setContent, setDocType, setDocumentFactory, setEntityResolver, setName
accept, add, addComment, addElement, addElement, addElement, addProcessingInstruction, addProcessingInstruction, asXML, asXPathResult, checkAddElementAllowed, childAdded, childRemoved, getDocument, getNodeType, getPath, getStringValue, getUniquePath, normalize, remove, setRootElement, toString, write
add, add, add, addElement, appendContent, content, contentRemoved, createContentList, createContentList, createEmptyList, createResultList, createSingleResultList, elementByID, elementID, getContentAsStringValue, getContentAsText, getText, getTextTrim, hasContent, indexOf, invalidNodeTypeAddException, isReadOnly, node, nodeCount, nodeIterator, remove, remove, remove, setProcessingInstructions
createPattern, createXPath, createXPathFilter, createXPathResult, detach, getNodeTypeName, getParent, getPath, getUniquePath, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, setDocument, setParent, setText, supportsParent, valueOf
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getNodeType, normalize
add, add, add, appendContent, content, elementByID, indexOf, node, nodeCount, nodeIterator, remove, remove, remove, setProcessingInstructions
createXPath, detach, getNodeTypeName, getParent, getPath, getText, getUniquePath, hasContent, isReadOnly, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, setDocument, setParent, setText, supportsParent, valueOf
private static final DOMDocumentFactory DOCUMENT_FACTORY
DocumentFactory
instance used by defaultpublic DOMDocument()
public DOMDocument(String name)
public DOMDocument(Element rootElement)
public DOMDocument(DocumentType docType)
public DOMDocument(Element rootElement, DocumentType docType)
public DOMDocument(String name, Element rootElement, DocumentType docType)
public String getNamespaceURI()
Node
null
if it is
unspecified.
ELEMENT_NODE
and
ATTRIBUTE_NODE
and nodes created with a DOM Level 1
method, such as createElement
from the
Document
interface, this is always null
.Per
the Namespaces in XML Specification an attribute does not inherit
its namespace from the element it is attached to. If an attribute is
not explicitly given a namespace, it simply has no namespace.public String getPrefix()
Node
null
if it is
unspecified.
nodeName
attribute, which holds the qualified name, as
well as the tagName
and name
attributes of
the Element
and Attr
interfaces, when
applicable.
namespaceURI
and localName
do not change.
ELEMENT_NODE
and
ATTRIBUTE_NODE
and nodes created with a DOM Level 1
method, such as createElement
from the
Document
interface, this is always null
.public void setPrefix(String prefix) throws DOMException
DOMException
public String getLocalName()
Node
ELEMENT_NODE
and
ATTRIBUTE_NODE
and nodes created with a DOM Level 1
method, such as createElement
from the
Document
interface, this is always null
.public String getNodeName()
Node
public String getNodeValue() throws DOMException
Node
null
, setting it has no effect.DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.public void setNodeValue(String nodeValue) throws DOMException
DOMException
public Node getParentNode()
Node
Attr
,
Document
, DocumentFragment
,
Entity
, and Notation
may have a parent.
However, if a node has just been created and not yet added to the
tree, or if it has been removed from the tree, this is
null
.public NodeList getChildNodes()
Node
NodeList
that contains all children of this node. If
there are no children, this is a NodeList
containing no
nodes.public Node getFirstChild()
Node
null
.public Node getLastChild()
Node
null
.public Node getPreviousSibling()
Node
null
.public Node getNextSibling()
Node
null
.public NamedNodeMap getAttributes()
Node
NamedNodeMap
containing the attributes of this node (if
it is an Element
) or null
otherwise.public Document getOwnerDocument()
Node
Document
object associated with this node. This is
also the Document
object used to create new nodes. When
this node is a Document
or a DocumentType
which is not used with any Document
yet, this is
null
.public Node insertBefore(Node newChild, Node refChild) throws DOMException
Node
newChild
before the existing child node
refChild
. If refChild
is null
,
insert newChild
at the end of the list of children.
newChild
is a DocumentFragment
object,
all of its children are inserted, in the same order, before
refChild
. If the newChild
is already in the
tree, it is first removed.DOMException
- HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
allow children of the type of the newChild
node, or if
the node to insert is one of this node's ancestors.
newChild
was created
from a different document than the one that created this node.
refChild
is not a child of
this node.public Node replaceChild(Node newChild, Node oldChild) throws DOMException
Node
oldChild
with newChild
in the list of children, and returns the oldChild
node.
newChild
is a DocumentFragment
object,
oldChild
is replaced by all of the
DocumentFragment
children, which are inserted in the
same order. If the newChild
is already in the tree, it
is first removed.DOMException
- HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
allow children of the type of the newChild
node, or if
the node to put in is one of this node's ancestors.
newChild
was created
from a different document than the one that created this node.
oldChild
is not a child of
this node.public Node removeChild(Node oldChild) throws DOMException
Node
oldChild
from the list
of children, and returns it.DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
oldChild
is not a child of
this node.public Node appendChild(Node newChild) throws DOMException
Node
newChild
to the end of the list of children
of this node. If the newChild
is already in the tree, it
is first removed.DOMException
- HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
allow children of the type of the newChild
node, or if
the node to append is one of this node's ancestors.
newChild
was created
from a different document than the one that created this node.
public boolean hasChildNodes()
Node
true
if this node has any children,
false
otherwise.public Node cloneNode(boolean deep)
Node
parentNode
is null
.).
Element
copies all attributes and their
values, including those generated by the XML processor to represent
defaulted attributes, but this method does not copy any text it
contains unless it is a deep clone, since the text is contained in a
child Text
node. Cloning an Attribute
directly, as opposed to be cloned as part of an Element
cloning operation, returns a specified attribute (
specified
is true
). Cloning any other type
of node simply returns a copy of this node.
EntityReference
clone are readonly
. In addition, clones of unspecified Attr
nodes are
specified. And, cloning Document
,
DocumentType
, Entity
, and
Notation
nodes is implementation dependent.public boolean isSupported(String feature, String version)
Node
true
if the specified feature is
supported on this node, false
otherwise.public boolean hasAttributes()
Node
true
if this node has any attributes,
false
otherwise.public NodeList getElementsByTagName(String name)
Document
NodeList
of all the Elements
with a
given tag name in the order in which they are encountered in a
preorder traversal of the Document
tree.NodeList
object containing all the matched
Elements
.public NodeList getElementsByTagNameNS(String namespaceURI, String localName)
Document
NodeList
of all the Elements
with a
given local name and namespace URI in the order in which they are
encountered in a preorder traversal of the Document
tree.NodeList
object containing all the matched
Elements
.public DocumentType getDoctype()
Document
DocumentType
)
associated with this document. For HTML documents as well as XML
documents without a document type declaration this returns
null
. The DOM Level 2 does not support editing the
Document Type Declaration. docType
cannot be altered in
any way, including through the use of methods inherited from the
Node
interface, such as insertNode
or
removeNode
.public DOMImplementation getImplementation()
Document
DOMImplementation
object that handles this document. A
DOM application may use objects from multiple implementations.public Element getDocumentElement()
Document
public Element createElement(String tagName) throws DOMException
Document
Element
interface, so attributes
can be specified directly on the returned object.
Attr
nodes representing them are automatically created
and attached to the element.
createElementNS
method.Element
object with the
nodeName
attribute set to tagName
, and
localName
, prefix
, and
namespaceURI
set to null
.DOMException
- INVALID_CHARACTER_ERR: Raised if the specified name contains an
illegal character.public DocumentFragment createDocumentFragment()
Document
DocumentFragment
object.DocumentFragment
.public Text createTextNode(String data)
Document
Text
node given the specified string.Text
object.public Comment createComment(String data)
Document
Comment
node given the specified string.Comment
object.public CDATASection createCDATASection(String data) throws DOMException
Document
CDATASection
node whose value is the specified
string.CDATASection
object.DOMException
- NOT_SUPPORTED_ERR: Raised if this document is an HTML document.public ProcessingInstruction createProcessingInstruction(String target, String data) throws DOMException
Document
ProcessingInstruction
node given the specified
name and data strings.ProcessingInstruction
object.DOMException
- INVALID_CHARACTER_ERR: Raised if the specified target contains an
illegal character.
public Attr createAttribute(String name) throws DOMException
Document
Attr
of the given name. Note that the
Attr
instance can then be set on an Element
using the setAttributeNode
method.
createAttributeNS
method.Attr
object with the nodeName
attribute set to name
, and localName
,
prefix
, and namespaceURI
set to
null
. The value of the attribute is the empty string.DOMException
- INVALID_CHARACTER_ERR: Raised if the specified name contains an
illegal character.public EntityReference createEntityReference(String name) throws DOMException
Document
EntityReference
object. In addition, if the
referenced entity is known, the child list of the
EntityReference
node is made the same as that of the
corresponding Entity
node.If any descendant of the
Entity
node has an unbound namespace prefix, the
corresponding descendant of the created EntityReference
node is also unbound; (its namespaceURI
is
null
). The DOM Level 2 does not support any mechanism to
resolve namespace prefixes.EntityReference
object.DOMException
- INVALID_CHARACTER_ERR: Raised if the specified name contains an
illegal character.
public Node importNode(Node importedNode, boolean deep) throws DOMException
Document
parentNode
is null
).
The source node is not altered or removed from the original document;
this method creates a new copy of the source node.
nodeName
and nodeType
, plus the
attributes related to namespaces (prefix
,
localName
, and namespaceURI
). As in the
cloneNode
operation on a Node
, the source
node is not altered.
nodeType
, attempting to mirror the behavior expected if
a fragment of XML or HTML source was copied from one document to
another, recognizing that the two documents may have different DTDs
in the XML case. The following list describes the specifics for each
type of node.
ownerElement
attribute
is set to null
and the specified
flag is
set to true
on the generated Attr
. The
descendants of the source Attr
are recursively imported
and the resulting nodes reassembled to form the corresponding subtree.
Note that the deep
parameter has no effect on
Attr
nodes; they always carry their children with them
when imported.deep
option
was set to true
, the descendants of the source element
are recursively imported and the resulting nodes reassembled to form
the corresponding subtree. Otherwise, this simply generates an empty
DocumentFragment
.Document
nodes cannot be imported.DocumentType
nodes cannot be imported.Attr
nodes are attached to the generated Element
. Default
attributes are not copied, though if the document being imported into
defines default attributes for this element name, those are assigned.
If the importNode
deep
parameter was set to
true
, the descendants of the source element are
recursively imported and the resulting nodes reassembled to form the
corresponding subtree.Entity
nodes can be
imported, however in the current release of the DOM the
DocumentType
is readonly. Ability to add these imported
nodes to a DocumentType
will be considered for addition
to a future release of the DOM.On import, the publicId
,
systemId
, and notationName
attributes are
copied. If a deep
import is requested, the descendants
of the the source Entity
are recursively imported and
the resulting nodes reassembled to form the corresponding subtree.EntityReference
itself is
copied, even if a deep
import is requested, since the
source and destination documents might have defined the entity
differently. If the document being imported into provides a
definition for this entity name, its value is assigned.Notation
nodes can be imported, however in the current
release of the DOM the DocumentType
is readonly. Ability
to add these imported nodes to a DocumentType
will be
considered for addition to a future release of the DOM.On import, the
publicId
and systemId
attributes are copied.
Note that the deep
parameter has no effect on
Notation
nodes since they never have any children.target
and data
values from those of the
source node.CharacterData
copy their
data
and length
attributes from those of
the source node.Document
.DOMException
- NOT_SUPPORTED_ERR: Raised if the type of node being imported is not
supported.public Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException
Document
Element
object with the following
attributes:AttributeValueNode.nodeName
qualifiedName
Node.namespaceURI
namespaceURI
Node.prefix
prefix, extracted
from qualifiedName
, or null
if there is
no prefixNode.localName
local name, extracted from
qualifiedName
Element.tagName
qualifiedName
DOMException
- INVALID_CHARACTER_ERR: Raised if the specified qualified name
contains an illegal character.
qualifiedName
is
malformed, if the qualifiedName
has a prefix and the
namespaceURI
is null
, or if the
qualifiedName
has a prefix that is "xml" and the
namespaceURI
is different from "
http://www.w3.org/XML/1998/namespace" .public Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException
Document
Attr
object with the following attributes:
AttributeValueNode.nodeName
qualifiedName
Node.namespaceURI
namespaceURI
Node.prefix
prefix, extracted from
qualifiedName
, or null
if there is no
prefixNode.localName
local name, extracted from
qualifiedName
Attr.name
qualifiedName
Node.nodeValue
the empty
stringDOMException
- INVALID_CHARACTER_ERR: Raised if the specified qualified name
contains an illegal character.
qualifiedName
is
malformed, if the qualifiedName
has a prefix and the
namespaceURI
is null
, if the
qualifiedName
has a prefix that is "xml" and the
namespaceURI
is different from "
http://www.w3.org/XML/1998/namespace", or if the
qualifiedName
is "xmlns" and the
namespaceURI
is different from "
http://www.w3.org/2000/xmlns/".public Element getElementById(String elementId)
Document
Element
whose ID
is given by
elementId
. If no such element exists, returns
null
. Behavior is not defined if more than one element
has this ID
. The DOM implementation must have
information that says which attributes are of type ID. Attributes
with the name "ID" are not of type ID unless so defined.
Implementations that do not know whether attributes are of type ID or
not are expected to return null
.protected DocumentFactory getDocumentFactory()
getDocumentFactory
in class DefaultDocument
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses