OBJECT:  Node

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)


Copyright 1999-2001 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information