XML DOM Avanzado XML DOM - Avanzado Anteriormente en este tutorial, presentamos XML DOM y utilizamos el método getElementsByTagName() de XML DOM para recuperar datos de un documento XML. En este capítulo combinaremos algunos otros métodos XML DOM importantes. Puede obtener más información sobre XML DOM en nuestro tutorial de XML DOM. Obtenga el valor del elemento en el archivo XML utilizado en el siguiente ejemplo: books.xml. El siguiente ejemplo recupera el valor de texto del primer elemento <title>: Ejemplo
txt=xmlDoc.getElementsByTagName("título")[0].childNodes[0].nodeValue;
Pruébalo »
El siguiente ejemplo recupera el valor de texto del atributo "lang" del primer elemento <title>:
txt=xmlDoc.getElementsByTagName("título")[0].getAttribute("lang");
Pruébalo »
El siguiente ejemplo cambia el valor de texto del primer elemento <title>:
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Cocina fácil";
Pruébalo »
El método setAttribute() del DOM XML se puede utilizar para cambiar el valor de un atributo existente o para crear un nuevo atributo.
El siguiente ejemplo crea un nuevo atributo (edición="primero") y lo agrega a cada elemento <libro>:
x=xmlDoc.getElementsByTagName("libro");for(i=0;i<x.length;i++){x[i].setAttribute("edición","primera");}
Pruébalo »
El método createElement() de 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 DOM XML agrega un nodo secundario a un nodo (después del último nodo secundario).
Para crear un nuevo elemento con contenido de texto, cree un nuevo nodo de elemento y un nuevo nodo de texto al mismo tiempo, y luego agréguelo al nodo existente.
El siguiente ejemplo crea un nuevo elemento (<edición>) con el siguiente texto: Primero, y luego lo agrega al primer elemento <libro>:
newel=xmlDoc.createElement("edición");newtext=xmlDoc.createTextNode("Primero");newel.appendChild(newtext);x=xmlDoc.getElementsByTagName("libro");x[0].appendChild(newel);
Pruébalo »
Explicación de ejemplo
Crear un elemento <edición>
Crea un nodo de texto con el valor "Primero"
Agregue este nodo de texto a un nuevo elemento <edición>
Agregue el elemento <edición> al primer elemento <libro>
El siguiente ejemplo elimina el primer nodo del primer elemento <book>:
x=xmlDoc.getElementsByTagName("libro")[0];x.removeChild(x.childNodes[0]);
Pruébalo »
Nota: Los resultados del ejemplo anterior pueden variar según el navegador utilizado. Firefox trata los caracteres de nueva línea como nodos de texto vacíos, pero Internet Explorer no. Puede leer más sobre este problema y cómo evitarlo en nuestro tutorial XML DOM.