XML DOM Avanzado


XML DOM - Avanzado

EnEn capítulos anteriores de este tutorialpresentamos el XML DOM y utilizamos el método getElementsByTagName() del XML DOM para recuperar datos de un documento XML.

En este capítulo veremos algunos otros métodos importantes del XML DOM.

Puede, en nuestrotutorial de XML DOM,aprender más sobre XML DOM.


Obtener el valor de un elemento

El archivo XML utilizado en el siguiente ejemplo:。

El siguiente ejemplo recupera el valor de texto del primer elemento <title>:

Ejemplo

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;

Pruébalo »


Obtener el valor de un atributo

El siguiente ejemplo recupera el valor de texto del atributo "lang" del primer elemento <title>:

Ejemplo

txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

Pruébalo »


Cambiar el valor de un elemento

El siguiente ejemplo cambia el valor de texto del primer elemento <title>:

Ejemplo

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Cooking";

Pruébalo »


Crear un nuevo atributo

El método setAttribute() del XML DOM se puede utilizar para cambiar el valor de un atributo existente o para crear un nuevo atributo.

El siguiente ejemplo crea un nuevo atributo (edition="first") y lo añade a cada elemento <book>:

Ejemplo

x=xmlDoc.getElementsByTagName("book");

for(i=0;i<x.length;i++)
{
x[i].setAttribute("edition","first");
}

Pruébalo »


Crear elementos

El método createElement() del XML DOM crea un nuevo nodo de elemento.

El método createTextNode() del XML DOM crea un nuevo nodo de texto.

El método appendChild() del XML DOM añade un nodo hijo a un nodo (después del último nodo hijo).

Para crear un nuevo elemento con contenido de texto, es necesario crear simultáneamente un nuevo nodo de elemento y un nuevo nodo de texto, y luego añadirlo al nodo existente.

El siguiente ejemplo crea un nuevo elemento (<edition>) con el siguiente texto: First, y luego lo añade al primer elemento <book>:

Ejemplo

newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("First");
newel.appendChild(newtext);

x=xmlDoc.getElementsByTagName("book");
x[0].appendChild(newel);

Pruébalo »

Explicación del ejemplo

  • Crear un elemento <edition>
  • Crear un nodo de texto con el valor "First"
  • Añadir este nodo de texto al nuevo elemento <edition>
  • Añadir el elemento <edition> al primer elemento <book>

Eliminar elementos

El siguiente ejemplo elimina el primer nodo del primer elemento <book>:

Ejemplo

x=xmlDoc.getElementsByTagName("book")[0];
x.removeChild(x.childNodes[0]);

Pruébalo »

Nota:El resultado del ejemplo anterior puede variar según el navegador utilizado. Firefox trata los caracteres de nueva línea como nodos de texto vacíos, mientras que Internet Explorer no lo hace. Puede, en nuestrotutorial de XML DOM,leer más sobre este problema y cómo evitarlo.

Otras extensiones