XML DOM - Node Types

From http://www.w3schools.com (Copyright Refsnes Data)

# XML DOM Node Types

The DOM presents a document as a hierarchy of node objects.

## Examples

The examples below use the XML file books.xml.
A function, loadXMLDoc(), in an external JavaScript is used to load the XML file.

Display nodeName and nodeType of all elements

Display nodeName and nodeValue of all elements

## Node Types

The following table lists the different W3C node types, and which node types they may have as children:

Node type | Description | Children
--- | --- | ---
Document | Represents the entire document (the root-node of the DOM tree) | Element (max. one), ProcessingInstruction, Comment, DocumentType
DocumentFragment | Represents a "lightweight" Document object, which can hold a portion of a document | Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
DocumentType | Provides an interface to the entities defined for the document | None
ProcessingInstruction | Represents a processing instruction | None
EntityReference | Represents an entity reference | Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
Element | Represents an element | Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference
Attr | Represents an attribute | Text, EntityReference
Text | Represents textual content in an element or attribute | None
CDATASection | Represents a CDATA section in a document (text that will NOT be parsed by a parser) | None
Comment | Represents a comment | None
Entity | Represents an entity | Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
Notation | Represents a notation declared in the DTD | None

## Node Types - Return Values

The following table lists what the nodeName and the nodeValue properties will return for each node type:

Node type | nodeName returns | nodeValue returns
--- | --- | ---
Document | #document | null
DocumentFragment | #document fragment | null
DocumentType | doctype name | null
EntityReference | entity reference name | null
Element | element name | null
Attr | attribute name | attribute value
ProcessingInstruction | target | content of node
Comment | #comment | comment text
Text | #text | content of node
CDATASection | #cdata-section | content of node
Entity | entity name | null
Notation | notation name | null

## NodeTypes - Named Constants

NodeType | Named Constant
--- | ---
1 | ELEMENT_NODE
2 | ATTRIBUTE_NODE
3 | TEXT_NODE
4 | CDATA_SECTION_NODE
5 | ENTITY_REFERENCE_NODE
6 | ENTITY_NODE
7 | PROCESSING_INSTRUCTION_NODE
8 | COMMENT_NODE
9 | DOCUMENT_NODE
10 | DOCUMENT_TYPE_NODE
11 | DOCUMENT_FRAGMENT_NODE
12 | NOTATION_NODE

From http://www.w3schools.com (Copyright Refsnes Data)