DOM XML - Establecer nodo

En este capítulo, estudiaremos cómo cambiar los valores de los nodos en un objeto DOM XML. El valor del nodo se puede cambiar de la siguiente manera:

var value = node.nodeValue;

Si el nodo es un atributo , la variable de valor será el valor del atributo; si el nodo es un nodo de texto , será el contenido del texto; si el nodo es un elemento , será nulo .

Las siguientes secciones demostrarán la configuración del valor de nodo para cada tipo de nodo (atributo, nodo de texto y elemento).

El node.xml utilizado en todos los siguientes ejemplos es el siguiente:

<Company>
   <Employee category = "Technical">
      <FirstName>Tanmay</FirstName>
      <LastName>Patil</LastName>
      <ContactNo>1234567890</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
   
   <Employee category = "Non-Technical">
      <FirstName>Taniya</FirstName>
      <LastName>Mishra</LastName>
      <ContactNo>1234667898</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
   
   <Employee category = "Management">
      <FirstName>Tanisha</FirstName>
      <LastName>Sharma</LastName>
      <ContactNo>1234562350</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
</Company>

Cambiar el valor del nodo de texto

Cuando decimos el valor de cambio del elemento Node, nos referimos a editar el contenido de texto de un elemento (que también se llama nodo de texto ). El siguiente ejemplo demuestra cómo cambiar el nodo de texto de un elemento.

Ejemplo

El siguiente ejemplo (set_text_node_example.htm) analiza un documento XML ( node.xml ) en un objeto DOM XML y cambia el valor del nodo de texto de un elemento. En este caso, envíe un correo electrónico a cada empleado a [email protected] e imprima los valores.

<!DOCTYPE html>
<html>
   <head>
      <script>
         function loadXMLDoc(filename) {
            if (window.XMLHttpRequest) {
               xhttp = new XMLHttpRequest();
            } else // code for IE5 and IE6 {
                xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET",filename,false);
            xhttp.send();
            return xhttp.responseXML;
         }
      </script>
   </head>
   <body>
      <script>
         xmlDoc = loadXMLDoc("/dom/node.xml");

         x = xmlDoc.getElementsByTagName("Email");
         for(i = 0;i<x.length;i++) {	
	
            x[i].childNodes[0].nodeValue = "[email protected]";
            document.write(i+');
            document.write(x[i].childNodes[0].nodeValue);
            document.write('<br>');
         }
	
      </script>
   </body>
</html>

Ejecución

Guarde este archivo como set_text_node_example.htm en la ruta del servidor (este archivo y node.xml deben estar en la misma ruta en su servidor). Recibirá el siguiente resultado:

0) [email protected]
1) [email protected]
2) [email protected]

Cambiar el valor del nodo de atributo

El siguiente ejemplo demuestra cómo cambiar el nodo de atributo de un elemento.

Ejemplo

El siguiente ejemplo (set_attribute_example.htm) analiza un documento XML ( node.xml ) en un objeto DOM XML y cambia el valor del nodo de atributo de un elemento. En este caso, la Categoría de cada Empleado para admin-0, admin-1, admin-2 respectivamente e imprima los valores.

<!DOCTYPE html>
<html>
   <head>
      <script>
         function loadXMLDoc(filename) {
            if (window.XMLHttpRequest) {
                xhttp = new XMLHttpRequest();
            } else // code for IE5 and IE6 {
                xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET",filename,false);
            xhttp.send();
            return xhttp.responseXML;
         }
      </script>
   </head>
   <body>
      <script>
         xmlDoc = loadXMLDoc("/dom/node.xml");

         x = xmlDoc.getElementsByTagName("Employee");
         for(i = 0 ;i<x.length;i++){	
	
            newcategory = x[i].getAttributeNode('category');
            newcategory.nodeValue = "admin-"+i;
            document.write(i+');
            document.write(x[i].getAttributeNode('category').nodeValue);
            document.write('<br>');
         }
	
      </script>
   </body>
</html>

Ejecución

Guarde este archivo como set_node_attribute_example.htm en la ruta del servidor (este archivo y node.xml deben estar en la misma ruta en su servidor). El resultado sería el siguiente:

0) admin-0
1) admin-1
2) admin-2