Package org.dom4j
Interface Element
-
- All Known Implementing Classes:
AbstractElement
,BaseElement
,BeanElement
,DatatypeElement
,DefaultElement
,DOMElement
,IndexedElement
,NonLazyElement
,UserDataElement
public interface Element extends Branch
Element
interface defines an XML element. An element can have declared namespaces, attributes, child nodes and textual content.Some of this interface is optional. Some implementations may be read-only and not support being modified. Some implementations may not support the parent relationship and methods such as
Node.getParent()
orNode.getDocument()
.
-
-
Field Summary
-
Fields inherited from interface org.dom4j.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
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
add(Attribute attribute)
Adds the givenAttribute
to this element.void
add(CDATA cdata)
Adds the givenCDATA
to this element.void
add(Entity entity)
Adds the givenEntity
to this element.void
add(Namespace namespace)
Adds the givenNamespace
to this element.void
add(Text text)
Adds the givenText
to this element.Element
addAttribute(java.lang.String name, java.lang.String value)
Adds the attribute value of the given local name.Element
addAttribute(QName qName, java.lang.String value)
Adds the attribute value of the given fully qualified name.Element
addCDATA(java.lang.String cdata)
Adds a newCDATA
node with the given text to this element.Element
addComment(java.lang.String comment)
Adds a newComment
node with the given text to this element.Element
addEntity(java.lang.String name, java.lang.String text)
Adds a newEntity
node with the given name and text to this element and returns a reference to the new node.java.util.List<Namespace>
additionalNamespaces()
Returns any additional namespaces declarations for this element other than namespace returned via thegetNamespace()
method.Element
addNamespace(java.lang.String prefix, java.lang.String uri)
Adds a namespace to this element for use by its child contentElement
addProcessingInstruction(java.lang.String target, java.lang.String text)
Adds a processing instruction for the given targetElement
addProcessingInstruction(java.lang.String target, java.util.Map<java.lang.String,java.lang.String> data)
Adds a processing instruction for the given targetElement
addText(java.lang.String text)
Adds a newText
node with the given text to this element.void
appendAttributes(Element element)
Appends the attributes of the given element to me.Attribute
attribute(int index)
Returns the attribute at the specified indexGets theAttribute
attribute(java.lang.String name)
Returns the attribute with the given nameAttribute
attribute(QName qName)
DOCUMENT ME!int
attributeCount()
DOCUMENT ME!java.util.Iterator<Attribute>
attributeIterator()
DOCUMENT ME!java.util.List<Attribute>
attributes()
Returns theAttribute
instances this element contains as a backedList
so that the attributes may be modified directly using theList
interface.java.lang.String
attributeValue(java.lang.String name)
This returns the attribute value for the attribute with the given name and any namespace or null if there is no such attribute or the empty string if the attribute value is empty.java.lang.String
attributeValue(java.lang.String name, java.lang.String defaultValue)
This returns the attribute value for the attribute with the given name and any namespace or the default value if there is no such attribute value.java.lang.String
attributeValue(QName qName)
This returns the attribute value for the attribute with the given fully qualified name or null if there is no such attribute or the empty string if the attribute value is empty.java.lang.String
attributeValue(QName qName, java.lang.String defaultValue)
This returns the attribute value for the attribute with the given fully qualified name or the default value if there is no such attribute value.Element
createCopy()
Creates a deep copy of this element The new element is detached from its parent, and getParent() on the clone will return null.Element
createCopy(java.lang.String name)
Creates a deep copy of this element with the given local name The new element is detached from its parent, and getParent() on the clone will return null.Element
createCopy(QName qName)
Creates a deep copy of this element with the given fully qualified name.java.util.List<Namespace>
declaredNamespaces()
Returns all the namespaces declared by this element.Element
element(java.lang.String name)
Returns the first element for the given local name and any namespace.Element
element(QName qName)
Returns the first element for the given fully qualified name.java.util.Iterator<Element>
elementIterator()
Returns an iterator over all this elements child elements.java.util.Iterator<Element>
elementIterator(java.lang.String name)
Returns an iterator over the elements contained in this element which match the given local name and any namespace.java.util.Iterator<Element>
elementIterator(QName qName)
Returns an iterator over the elements contained in this element which match the given fully qualified name.java.util.List<Element>
elements()
Returns the elements contained in this element.java.util.List<Element>
elements(java.lang.String name)
Returns the elements contained in this element with the given local name and any namespace.java.util.List<Element>
elements(QName qName)
Returns the elements contained in this element with the given fully qualified name.java.lang.String
elementText(java.lang.String name)
java.lang.String
elementText(QName qname)
java.lang.String
elementTextTrim(java.lang.String name)
java.lang.String
elementTextTrim(QName qname)
java.lang.Object
getData()
Accesses the data of this element which may implement data typing bindings such as XML Schema or Java Bean bindings or will return the same value asgetText()
Namespace
getNamespace()
Returns theNamespace
of this element if one exists otherwiseNamespace.NO_NAMESPACE
is returned.Namespace
getNamespaceForPrefix(java.lang.String prefix)
Returns theNamespace
which is mapped to the given prefix or null if it could not be found.Namespace
getNamespaceForURI(java.lang.String uri)
Returns theNamespace
which is mapped to the given URI or null if it could not be found.java.lang.String
getNamespacePrefix()
Returns the namespace prefix of this element if one exists otherwise an emptyString
is returned.java.util.List<Namespace>
getNamespacesForURI(java.lang.String uri)
Returns the all namespaces which are mapped to the given URI or an empty list if no such namespaces could be found.java.lang.String
getNamespaceURI()
Returns the URI mapped to the namespace of this element if one exists otherwise an emptyString
is returned.QName
getQName()
Returns theQName
of this element which represents the local name, the qualified name and theNamespace
.QName
getQName(java.lang.String qualifiedName)
Returns theQName
for the given qualified name, using the namespace URI in scope for the given prefix of the qualified name or the default namespace if the qualified name has no prefix.java.lang.String
getQualifiedName()
Returns the fully qualified name of this element.java.lang.String
getStringValue()
Returns the XPath string-value of this node.java.lang.String
getText()
Returns the text value of this element without recursing through child elements.java.lang.String
getTextTrim()
DOCUMENT ME!Node
getXPathResult(int index)
Returns a node at the given index suitable for an XPath result set.boolean
hasMixedContent()
Returns true if thisElement
has mixed content.boolean
isRootElement()
DOCUMENT ME!boolean
isTextOnly()
Returns true if thisElement
has text only content.boolean
remove(Attribute attribute)
Removes the givenAttribute
from this element.boolean
remove(CDATA cdata)
Removes the givenCDATA
if the node is an immediate child of this element.boolean
remove(Entity entity)
Removes the givenEntity
if the node is an immediate child of this element.boolean
remove(Namespace namespace)
Removes the givenNamespace
if the node is an immediate child of this element.boolean
remove(Text text)
Removes the givenText
if the node is an immediate child of this element.void
setAttributes(java.util.List<Attribute> attributes)
Sets the attributes that this element containsvoid
setAttributeValue(java.lang.String name, java.lang.String value)
Deprecated.As of version 0.5.void
setAttributeValue(QName qName, java.lang.String value)
Deprecated.As of version 0.5.void
setData(java.lang.Object data)
Sets the data value of this element if this element supports data binding or callsNode.setText(java.lang.String)
if it doesn'tvoid
setQName(QName qname)
Sets theQName
of this element which represents the local name, the qualified name and theNamespace
.-
Methods inherited from interface org.dom4j.Branch
add, add, add, add, addElement, addElement, addElement, appendContent, clearContent, content, elementByID, indexOf, node, nodeCount, nodeIterator, normalize, processingInstruction, processingInstructions, processingInstructions, remove, remove, remove, remove, removeProcessingInstruction, setContent, setProcessingInstructions
-
Methods inherited from interface org.dom4j.Node
accept, asXML, asXPathResult, clone, createXPath, detach, getDocument, getName, getNodeType, getNodeTypeName, getParent, getPath, getPath, getUniquePath, getUniquePath, hasContent, isReadOnly, matches, numberValueOf, selectNodes, selectNodes, selectNodes, selectObject, selectSingleNode, setDocument, setName, setParent, setText, supportsParent, valueOf, write
-
-
-
-
Method Detail
-
getQName
QName getQName()
Returns theQName
of this element which represents the local name, the qualified name and theNamespace
.- Returns:
- the
QName
associated with this element
-
setQName
void setQName(QName qname)
Sets theQName
of this element which represents the local name, the qualified name and theNamespace
.- Parameters:
qname
- is theQName
to be associated with this element
-
getNamespace
Namespace getNamespace()
Returns theNamespace
of this element if one exists otherwiseNamespace.NO_NAMESPACE
is returned.- Returns:
- the
Namespace
associated with this element
-
getQName
QName getQName(java.lang.String qualifiedName)
Returns theQName
for the given qualified name, using the namespace URI in scope for the given prefix of the qualified name or the default namespace if the qualified name has no prefix.- Parameters:
qualifiedName
- DOCUMENT ME!- Returns:
- the
QName
for the given qualified name
-
getNamespaceForPrefix
Namespace getNamespaceForPrefix(java.lang.String prefix)
Returns theNamespace
which is mapped to the given prefix or null if it could not be found.- Parameters:
prefix
- DOCUMENT ME!- Returns:
- the
Namespace
associated with the given prefix
-
getNamespaceForURI
Namespace getNamespaceForURI(java.lang.String uri)
Returns theNamespace
which is mapped to the given URI or null if it could not be found. If there is more than oneNamespace
mapped to the URI, which of them will be returned is undetermined.- Parameters:
uri
- DOCUMENT ME!- Returns:
- the
Namespace
associated with the given URI
-
getNamespacesForURI
java.util.List<Namespace> getNamespacesForURI(java.lang.String uri)
Returns the all namespaces which are mapped to the given URI or an empty list if no such namespaces could be found.- Parameters:
uri
- DOCUMENT ME!- Returns:
- the namespaces associated with the given URI
- Since:
- 1.5
-
getNamespacePrefix
java.lang.String getNamespacePrefix()
Returns the namespace prefix of this element if one exists otherwise an emptyString
is returned.- Returns:
- the prefix of the
Namespace
of this element or an emptyString
-
getNamespaceURI
java.lang.String getNamespaceURI()
Returns the URI mapped to the namespace of this element if one exists otherwise an emptyString
is returned.- Returns:
- the URI for the
Namespace
of this element or an emptyString
-
getQualifiedName
java.lang.String getQualifiedName()
Returns the fully qualified name of this element. This will be the same as the value returned fromNode.getName()
if this element has no namespace attached to this element or an expression of the formgetNamespacePrefix() + ":" + getName()
will be returned.- Returns:
- the fully qualified name of the element.
-
additionalNamespaces
java.util.List<Namespace> additionalNamespaces()
Returns any additional namespaces declarations for this element other than namespace returned via thegetNamespace()
method. If no additional namespace declarations are present for this element then an empty list will be returned. The list is backed by the element such that changes to the list will be reflected in the element though the reverse is not the case.- Returns:
- a list of any additional namespace declarations.
-
declaredNamespaces
java.util.List<Namespace> declaredNamespaces()
Returns all the namespaces declared by this element. If no namespaces are declared for this element then an empty list will be returned. The list is backed by the element such that changes to the list will be reflected in the element though the reverse is not the case.- Returns:
- a list of namespaces declared for this element.
-
addAttribute
Element addAttribute(java.lang.String name, java.lang.String value)
Adds the attribute value of the given local name. If an attribute already exists for the given name it will be replaced. Attributes with null values are silently ignored. If the value of the attribute is null then this method call will remove any attributes with the given name.- Parameters:
name
- is the name of the attribute whose value is to be added or updatedvalue
- is the attribute's value- Returns:
- this
Element
instance.
-
addAttribute
Element addAttribute(QName qName, java.lang.String value)
Adds the attribute value of the given fully qualified name. If an attribute already exists for the given name it will be replaced. Attributes with null values are silently ignored. If the value of the attribute is null then this method call will remove any attributes with the given name.- Parameters:
qName
- is the fully qualified name of the attribute whose value is to be added or updatedvalue
- is the attribute's value- Returns:
- this
Element
instance.
-
addComment
Element addComment(java.lang.String comment)
Adds a newComment
node with the given text to this element.- Parameters:
comment
- is the text for theComment
node.- Returns:
- this
Element
instance.
-
addCDATA
Element addCDATA(java.lang.String cdata)
Adds a newCDATA
node with the given text to this element.- Parameters:
cdata
- is the text for theCDATA
node.- Returns:
- this
Element
instance.
-
addEntity
Element addEntity(java.lang.String name, java.lang.String text)
Adds a newEntity
node with the given name and text to this element and returns a reference to the new node.- Parameters:
name
- is the name for theEntity
node.text
- is the text for theEntity
node.- Returns:
- this
Element
instance.
-
addNamespace
Element addNamespace(java.lang.String prefix, java.lang.String uri)
Adds a namespace to this element for use by its child content- Parameters:
prefix
- is the prefix to use, which should not be null or blankuri
- is the namespace URI- Returns:
- this
Element
instance.
-
addProcessingInstruction
Element addProcessingInstruction(java.lang.String target, java.lang.String text)
Adds a processing instruction for the given target- Parameters:
target
- is the target of the processing instructiontext
- is the textual data (key/value pairs) of the processing instruction- Returns:
- this
Element
instance.
-
addProcessingInstruction
Element addProcessingInstruction(java.lang.String target, java.util.Map<java.lang.String,java.lang.String> data)
Adds a processing instruction for the given target- Parameters:
target
- is the target of the processing instructiondata
- is a Map of the key / value pairs of the processing instruction- Returns:
- this
Element
instance.
-
addText
Element addText(java.lang.String text)
Adds a newText
node with the given text to this element.- Parameters:
text
- is the text for theText
node.- Returns:
- this
Element
instance.
-
add
void add(Attribute attribute)
Adds the givenAttribute
to this element. If the given node already has a parent defined then anIllegalAddException
will be thrown. Attributes with null values are silently ignored. If the value of the attribute is null then this method call will remove any attributes with the QName of this attribute.- Parameters:
attribute
- is the attribute to be added
-
add
void add(CDATA cdata)
Adds the givenCDATA
to this element. If the given node already has a parent defined then anIllegalAddException
will be thrown.- Parameters:
cdata
- is the CDATA to be added
-
add
void add(Entity entity)
Adds the givenEntity
to this element. If the given node already has a parent defined then anIllegalAddException
will be thrown.- Parameters:
entity
- is the entity to be added
-
add
void add(Text text)
Adds the givenText
to this element. If the given node already has a parent defined then anIllegalAddException
will be thrown.- Parameters:
text
- is the text to be added
-
add
void add(Namespace namespace)
Adds the givenNamespace
to this element. If the given node already has a parent defined then anIllegalAddException
will be thrown.- Parameters:
namespace
- is the namespace to be added
-
remove
boolean remove(Attribute attribute)
Removes the givenAttribute
from this element.- Parameters:
attribute
- is the attribute to be removed- Returns:
- true if the attribute was removed
-
remove
boolean remove(CDATA cdata)
Removes the givenCDATA
if the node is an immediate child of this element. If the given node is not an immediate child of this element then theNode.detach()
method should be used instead.- Parameters:
cdata
- is the CDATA to be removed- Returns:
- true if the cdata was removed
-
remove
boolean remove(Entity entity)
Removes the givenEntity
if the node is an immediate child of this element. If the given node is not an immediate child of this element then theNode.detach()
method should be used instead.- Parameters:
entity
- is the entity to be removed- Returns:
- true if the entity was removed
-
remove
boolean remove(Namespace namespace)
Removes the givenNamespace
if the node is an immediate child of this element. If the given node is not an immediate child of this element then theNode.detach()
method should be used instead.- Parameters:
namespace
- is the namespace to be removed- Returns:
- true if the namespace was removed
-
remove
boolean remove(Text text)
Removes the givenText
if the node is an immediate child of this element. If the given node is not an immediate child of this element then theNode.detach()
method should be used instead.- Parameters:
text
- is the text to be removed- Returns:
- true if the text was removed
-
getText
java.lang.String getText()
-
getTextTrim
java.lang.String getTextTrim()
DOCUMENT ME!- Returns:
- the trimmed text value where whitespace is trimmed and normalised into single spaces. This method does not return null.
-
getStringValue
java.lang.String getStringValue()
Returns the XPath string-value of this node. The behaviour of this method is defined in the XPath specification . This method returns the string-value of all the containedText
,CDATA
,Entity
andElement
nodes all appended together.- Specified by:
getStringValue
in interfaceNode
- Returns:
- the text from all the child Text and Element nodes appended together.
-
getData
java.lang.Object getData()
Accesses the data of this element which may implement data typing bindings such as XML Schema or Java Bean bindings or will return the same value asgetText()
- Returns:
- DOCUMENT ME!
-
setData
void setData(java.lang.Object data)
Sets the data value of this element if this element supports data binding or callsNode.setText(java.lang.String)
if it doesn't- Parameters:
data
- DOCUMENT ME!
-
attributes
java.util.List<Attribute> attributes()
Returns theAttribute
instances this element contains as a backedList
so that the attributes may be modified directly using theList
interface. TheList
is backed by theElement
so that changes to the list are reflected in the element and vice versa.- Returns:
- the attributes that this element contains as a
List
-
setAttributes
void setAttributes(java.util.List<Attribute> attributes)
Sets the attributes that this element contains- Parameters:
attributes
- DOCUMENT ME!
-
attributeCount
int attributeCount()
DOCUMENT ME!- Returns:
- the number of attributes this element contains
-
attributeIterator
java.util.Iterator<Attribute> attributeIterator()
DOCUMENT ME!- Returns:
- an iterator over the attributes of this element
-
attribute
Attribute attribute(int index)
Returns the attribute at the specified indexGets the- Parameters:
index
- DOCUMENT ME!- Returns:
- the attribute at the specified index where index >= 0 and index < number of attributes or throws an IndexOutOfBoundsException if the index is not within the allowable range
-
attribute
Attribute attribute(java.lang.String name)
Returns the attribute with the given name- Parameters:
name
- DOCUMENT ME!- Returns:
- the attribute for the given local name in any namespace. If there are more than one attributes with the given local name in different namespaces then the first one is returned.
-
attribute
Attribute attribute(QName qName)
DOCUMENT ME!- Parameters:
qName
- is the fully qualified name- Returns:
- the attribute for the given fully qualified name or null if it could not be found.
-
attributeValue
java.lang.String attributeValue(java.lang.String name)
This returns the attribute value for the attribute with the given name and any namespace or null if there is no such attribute or the empty string if the attribute value is empty.- Parameters:
name
- is the name of the attribute value to be returned- Returns:
- the value of the attribute, null if the attribute does not exist or the empty string
-
attributeValue
java.lang.String attributeValue(java.lang.String name, java.lang.String defaultValue)
This returns the attribute value for the attribute with the given name and any namespace or the default value if there is no such attribute value.- Parameters:
name
- is the name of the attribute value to be returneddefaultValue
- is the default value to be returned if the attribute has no value defined.- Returns:
- the value of the attribute or the defaultValue if the attribute has no value defined.
-
attributeValue
java.lang.String attributeValue(QName qName)
This returns the attribute value for the attribute with the given fully qualified name or null if there is no such attribute or the empty string if the attribute value is empty.- Parameters:
qName
- is the fully qualified name- Returns:
- the value of the attribute, null if the attribute does not exist or the empty string
-
attributeValue
java.lang.String attributeValue(QName qName, java.lang.String defaultValue)
This returns the attribute value for the attribute with the given fully qualified name or the default value if there is no such attribute value.- Parameters:
qName
- is the fully qualified namedefaultValue
- is the default value to be returned if the attribute has no value defined.- Returns:
- the value of the attribute or the defaultValue if the attribute has no value defined.
-
setAttributeValue
void setAttributeValue(java.lang.String name, java.lang.String value)
Deprecated.As of version 0.5. Please useaddAttribute(String, String)
instead. WILL BE REMOVED IN dom4j-1.6 !!Sets the attribute value of the given local name.- Parameters:
name
- is the name of the attribute whose value is to be added or updatedvalue
- is the attribute's value
-
setAttributeValue
void setAttributeValue(QName qName, java.lang.String value)
Deprecated.As of version 0.5. Please useaddAttribute(QName, String)
instead. WILL BE REMOVED IN dom4j-1.6 !!Sets the attribute value of the given fully qualified name.- Parameters:
qName
- is the fully qualified name of the attribute whose value is to be added or updatedvalue
- is the attribute's value
-
element
Element element(java.lang.String name)
Returns the first element for the given local name and any namespace.- Parameters:
name
- DOCUMENT ME!- Returns:
- the first element with the given local name
-
element
Element element(QName qName)
Returns the first element for the given fully qualified name.- Parameters:
qName
- is the fully qualified name to search for- Returns:
- the first element with the given fully qualified name
-
elements
java.util.List<Element> elements()
Returns the elements contained in this element. If this element does not contain any elements then this method returns an empty list. The list is backed by the element such that changes to the list will be reflected in the element though the reverse is not the case.- Returns:
- a list of all the elements in this element.
-
elements
java.util.List<Element> elements(java.lang.String name)
Returns the elements contained in this element with the given local name and any namespace. If no elements are found then this method returns an empty list. The list is backed by the element such that changes to the list will be reflected in the element though the reverse is not the case.- Parameters:
name
- DOCUMENT ME!- Returns:
- a list of all the elements in this element for the given local name
-
elements
java.util.List<Element> elements(QName qName)
Returns the elements contained in this element with the given fully qualified name. If no elements are found then this method returns an empty list. The list is backed by the element such that changes to the list will be reflected in the element though the reverse is not the case.- Parameters:
qName
- is the fully qualified name to search for- Returns:
- a list of all the elements in this element for the given fully qualified name.
-
elementIterator
java.util.Iterator<Element> elementIterator()
Returns an iterator over all this elements child elements.- Returns:
- an iterator over the contained elements
-
elementIterator
java.util.Iterator<Element> elementIterator(java.lang.String name)
Returns an iterator over the elements contained in this element which match the given local name and any namespace.- Parameters:
name
- DOCUMENT ME!- Returns:
- an iterator over the contained elements matching the given local name
-
elementIterator
java.util.Iterator<Element> elementIterator(QName qName)
Returns an iterator over the elements contained in this element which match the given fully qualified name.- Parameters:
qName
- is the fully qualified name to search for- Returns:
- an iterator over the contained elements matching the given fully qualified name
-
isRootElement
boolean isRootElement()
DOCUMENT ME!- Returns:
- true if this element is the root element of a document and this element supports the parent relationship else false.
-
hasMixedContent
boolean hasMixedContent()
Returns true if thisElement
has mixed content. Mixed content means that an element contains both textual data and child elements.- Returns:
- true if this element contains mixed content.
-
isTextOnly
boolean isTextOnly()
Returns true if thisElement
has text only content.- Returns:
- true if this element is empty or only contains text content.
-
appendAttributes
void appendAttributes(Element element)
Appends the attributes of the given element to me. This method behaves like theCollection.addAll(java.util.Collection)
method.- Parameters:
element
- is the element whose attributes will be added to me.
-
createCopy
Element createCopy()
Creates a deep copy of this element The new element is detached from its parent, and getParent() on the clone will return null.- Returns:
- a new deep copy Element
-
createCopy
Element createCopy(java.lang.String name)
Creates a deep copy of this element with the given local name The new element is detached from its parent, and getParent() on the clone will return null.- Parameters:
name
- DOCUMENT ME!- Returns:
- a new deep copy Element
-
createCopy
Element createCopy(QName qName)
Creates a deep copy of this element with the given fully qualified name. The new element is detached from its parent, and getParent() on the clone will return null.- Parameters:
qName
- DOCUMENT ME!- Returns:
- a new deep copy Element
-
elementText
java.lang.String elementText(java.lang.String name)
-
elementText
java.lang.String elementText(QName qname)
-
elementTextTrim
java.lang.String elementTextTrim(java.lang.String name)
-
elementTextTrim
java.lang.String elementTextTrim(QName qname)
-
getXPathResult
Node getXPathResult(int index)
Returns a node at the given index suitable for an XPath result set. This means the resulting Node will either be null or it will support the parent relationship.- Parameters:
index
- DOCUMENT ME!- Returns:
- the Node for the given index which will support the parent relationship or null if there is not a node at the given index.
-
-