Que es el modelo DOM

es una interfaz de programación de aplicaciones para documentos HTML y XML. El modelo DOM define la estructura lógica de los documentos y el modo en que se accede a ellos y se los manipula. Con el Modelo de Objetos del Documento, los programadores pueden construir documentos, navegar por su estructura, y añadir, modificar o eliminar elementos y contenido.

El modelo DOM está integrado por dos partes, el Núcleo del DOM y el DOM HTML. El núcleo DOM representa la funcionalidad usada para los documentos XML, y también sirve de base para el DOM HTML. Además, su función es implementar o bien el DOM HTML o bien las interfaces extendidas (XML), o ambas, con la semántica definida.

En el modelo DOM los documentos tienen una estructura parecida a un árbol, creando una estructura jerárquica en la que de un objeto principal pueden depender varios secundarios. Esto se ve claramente en la estructura que tiene la página de HTML, la cual consta de etiquetas anidadas.

La estructura del DOM está integrada por nodos, que se relacionan unos con otros en una estructura jerárquica, y cada nodo tiene un nodo superior del que depende, que es el nodo padre. Además, cada nodo puede tener 0, 1 o varios nodos dependientes de él, llamados nodos hijos.

Los nodos que están a un mismo nivel, dependiendo todos ellos del mismo nodo padre, son nodos hermanos. En esta curiosa familia de nodos, todo el árbol del DOM depende de un nodo principal a partir del cual se generan todos, el nodo Document.

Tipos de Nodos

  • Document: nodo raíz del que derivan todos los demás.
  • Element: Cada una de las etiquetas HTML. Es el único nodo que puede contener atributos y del que pueden derivar otros nodos.
  • Attr: Cada atributo de una etiqueta genera un nodo Attr, el cual contiene también su valor (como una propiedad). Es hijo del nodo element (etiqueta) que lo contiene.
  • Text: Contiene el texto encerrado por una etiqueta HTML (hijo del nodo Element).
  • Comment: Los comentarios incluidos en la pagina HTML también generan sus nodos.