remove read node examples example ejemplos documentelement delete javascript node.js xml-parsing xml-serialization domparser

read - remove node element javascript



Node+xmldom: ¿Cómo cambio el valor de un solo campo XML en javascript? (1)

¡Bien, descubrí el problema!

Estaba configurando nodeValue pero realmente necesitaba establecer data . Así que cambié

customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue = "test";

a

customerConfig.getElementsByTagName("name")[0].childNodes[0].data= "test";

entonces funcionó!

Utilizando el nodo v.0.10.29, Express v4.12.0 y xmldom v0.1.19, trato de hacer lo siguiente:

Pasos

  1. Leer un archivo XML en una cadena
  2. Convierta la cadena en un objeto XML usando xmldom
  3. Establezca el campo <name>default</name> en <name>test</name>
  4. Convierta el objeto XML nuevamente en una cadena

Problema

El problema es que después de configurar el campo <name> , se establece correctamente en el objeto, pero cuando lo convierto en una cadena, el campo <name> vuelve a ser el valor anterior (incorrecto).

Código

Así es el aspecto del código para esto:

var fs = require(''fs''); var DOMParser = require(''xmldom'').DOMParser; var XMLSerializer = require(''xmldom'').XMLSerializer; var filename = "myFile.xml"; fs.readFile(filename, "utf-8", function (err,data) { //CREATE/PARSE XML OBJECT FROM STRING var customerConfig = new DOMParser().parseFromString(data); //SET VALUE TO "TEST" (<name>default</name> TO <name>test</name>) customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue = "test"; //THIS OUTPUTS "test" WHICH IS CORRECT - console.log(customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue); //SERIALIZE TO STRING var xmlString = new XMLSerializer().serializeToString(customerConfig); //THIS OUTPUTS THE FULL XML FILE, //BUT STILL SHOWS <name>default</name> AND NOT <name>test</name> console.log(xmlString); });

El problema es que el campo <name> no está configurando para test en la cadena ... ¿Estoy pensando que hay un problema con la parte de serialización? ¿Alguien ve lo que estoy haciendo mal?

¡¡Gracias!!