The Node object is the basic datatype of the whole Document Object Model, and
represents a single node in the document tree. Note that not all node types may have
children even though methods to deal with them are available. For a list of all node types
and any child node types they may have, see the
DOM Structure Model.
Node Types
Below is a list of the valid node types and their enumeration. It is this number that
is returned by the nodeType property.
- NODE_ELEMENT(1)
This node represents an element.
- NODE_ATTRIBUTE(2)
This node represents an attribute of an element. Note that it is not considered
a child of the element node.
- NODE_TEXT(3)
This node represents the text content of a tag.
- NODE_CDATA_SECTION(4)
This node represents the CDATA section of the XML source. CDATA sections are
used to escape blocks of text that would otherwise be considered as markup.
- NODE_ENTITY_REFERENCE(5)
This node represents a reference to an entity in the XML document.
- NODE_ENTITY(6)
This node represents an expanded entity.
- NODE_PROCESSING_INSTRUCTION(7)
This node represents a processing instruction from the XML document.
- NODE_COMMENT(8)
This node represents a comment in the XML document.
- NODE_DOCUMENT(9)
This node represents an XML document object.
- NODE_DOCUMENT_TYPE(10)
This node represents the document type declaration of the <!DOCTYPE> tag.
- NODE_DOCUMENT_FRAGMENT(11)
This node represents a document fragment. This associates a node or subtree
with a document without actually being part of it.
- NODE_NOTATION(12)
This node represents a notation in the document type declaration.
The values of nodeName and
nodeValue vary according to the type of node. These values
are detailed in the table below.
Type |
nodeName |
nodeValue |
Element |
tagName |
null |
Attr |
name of attribute |
value of attribute |
Text |
#text |
content of text node |
CDATASection |
#cdata-section |
content of CDATA section |
EntityReference |
name of entity referenced |
null |
Entity |
entity name |
null |
ProcessingInstruction |
target |
entire content excluding target |
Comment |
#comment |
content of the comment |
Document |
#document |
null |
DocumentType |
document type name |
null |
DocumentFragment |
#document-fragment |
null |
Notation |
notation name |
null |
Microsoft's XMLDOMNode object extends the core XML DOM node interface with support for data
types, namespaces, DTDs, and schemas. To demonstrate how it might be used we shall use a
simple XML document called 'states.xml' which looks like this:
<States>
<State ref="FL">
<name>Florida</name>
<capital>Tallahassee</capital>
</State>
<State ref="IA">
<name>Iowa</name>
<capital>Des Moines</capital>
</State>
</States>
We will now load the XML file and create a Node object called
'current_node' out of the first child node of the root (i.e. the first State). Then we will
write the xml for that node to the HTML file.
Code (JavaScript):
var xml_doc = new ActiveXObject("Microsoft.XMLDOM");
xml_doc.async = false;
xml_doc.load("states.xml");
var current_node = xml_doc.documentElement.childNodes.item(0)
document.write(current_node.xml);
Output:
Florida Tallahassee
denotes a Microsoft extension to the W3C DOM.
PROPERTIES
attributes Property
This is a read-only property that returns a
NamedNodeMap for nodes that can have
attributes.
Syntax: Node.attributes
baseName Property
This is a read-only property that returns the base name for a node.
Syntax: Node.baseName
childNodes Property
This is a read-only property containing a node list of all children for those elements that
can have them.
Syntax: Node.childNodes
dataType Property
This is a read-only property that specifies the data type for the node.
Syntax: Node.dataType
definition Property
This property returns the definition of the node in the DTD or schema.
Syntax: Node.definition
firstChild Property
This is a read-only property that returns the first child node of a node. If there is none,
it returns null.
Syntax: Node.firstChild
lastChild Property
This is a read-only property that returns the last child node of a node. If there is none,
it returns null.
Syntax: Node.lastChild
namespaceURI Property
This property is read-only and returns the URI (Universal Resource Indentifier) of the
namespace.
Syntax: Node.namespaceURI
nextSibling Property
This property returns the next node in the parent's child list, or null if there
is none or the node is of a type that cannot be a child node
(Attr,
Document,
DocumentFragment).
Syntax: Node.nextSibling
nodeName Property
This property is read-only and contains the name of the node, depending on type.
Syntax: Node.nodeName
nodeType Property
This is a read-only property specifying the type of the node.
Syntax: Node.nodeType
nodeTypedValue Property
This property contains the value of this node expressed in its defined data type.
Syntax: Node.nodeTypedValue
nodeTypeString Property
This property is read-only and returns the node type in string form.
Syntax: Node.nodeTypeString
nodeValue Property
This property contains the value of the node, depending on type.
Syntax: Node.nodeValue
ownerDocument Property
This property returns the Document object to which the
node belongs. If the node itself is a document, then it returns null.
Syntax: Node.ownerDocument
parentNode Property
This is a read-only property that returns the parent node of all nodes except
Document,
DocumentFragment and
Attr, which cannot have parent nodes.
Syntax: Node.parentNode
parsed Property
This property returns a boolean value of true if this node and all of its
descendants have been parsed and instantiated. Otherwise it returns false.
Syntax: Node.parsed
prefix Property
This property is read-only and returns the namespace prefix, or an empty string if none
is specified. For example, it would return 'xxx' for the element <xxx:yyy>.
Syntax: Node.prefix
previousSibling Property
This property returns the previous node in the parent's child list, or null if
there is none or the node is of a type that cannot be a child node
(Attr,
Document,
DocumentFragment).
Syntax: Node.previousSibling
specified Property
This property returns a boolean value indicating whether this node (usually an attribute)
is explicitly specified or derived from a default value in the DTD or schema.
Syntax: Node.specified
text Property
This property contains the text content of this node and its subtrees.
Syntax: Node.text
xml Property
This property contains the XML representation of this node and its descendants.
Syntax: Node.xml
METHODS
appendChild Method
This method appends a new child node to the list of children for this node.
Syntax: Node.appendChild(tagName)
cloneNode Method
This method creates a clone node which is an exact replica of this node.
Syntax: Node.cloneNode(deep)
hasChildNodes Method
This method is a convenient way to determine whether a node has child nodes, returning
true if it has, and false if not.
Syntax: Node.hasChildNodes( )
insertBefore Method
This method is used to insert a new child node before an existing one. If no child node
exists, the new child node becomes the first.
Syntax: Node.insertBefore(newChild, refChild)
removeChild Method
This method removes the specified node from the list of children and returns it.
Syntax: Node.removeChild(oldChild)
replaceChild Method
This method is used to replace one of a node's children with another. It returns the old
child.
Syntax: Node.replaceChild(newChild, oldChild)
selectNodes Method
This method creates a NodeList of all the matching
descendant nodes returned by the specified pattern-matching operation.
Syntax: Node.selectNodes(patternString)
selectSingleNode Method
This method returns a Node object for the first descendant
node to match the specified pattern.
Syntax: Node.selectSingleNode(patternString)
transformNode Method
This method processes this node and its descendants using the specified XSL stylesheet,
and returns the resulting transformation.
Syntax: Node.transformNode(stylesheet)
transformNodeToObject Method
This method processes this node and its descendants using the specified XSL stylesheet,
and returns the resulting transformation in the specified object.
Syntax: Node.transformNodeToObject(stylesheet, outputObject)
|