2016-10-28 2 views
0

Je ne suis pas en mesure de modifier mon xml en utilisant XMLSerializer ... Mon code estmodifier le fichier XML à l'aide XMLDOM

var xml = request.responseText; 
var DOMParser = require('xmldom').DOMParser; 
var parser = new DOMParser(); 
var document = parser.parseFromString(xml, 'text/xml'); 
document.getElementsByTagName("a:Value").nodeValue = 12345; 
var XMLSerializer = require('xmldom').XMLSerializer; 
var serializer = new XMLSerializer(); 
var writetofile = serializer.serializeToString(document); 
console.log("writetofile" + writetofile); 

Je reçois XML avec la même ancienne valeur non 12345.

S'il vous plaît laissez-moi savoir comment résoudre tous les this..tried options..still ne fonctionne pas. :(

Répondre

-1

merci pour la réponse à nouveau ..appricited !!! J'ai trouvé la solution, en collant ici j'espère que cela va aider les autres utilisé textContent propriété changer ci-dessous la ligne document.getElementsByTagName ("a: Value") .nodeValue = 12345; à document.getElementsByTagName ("a: Valeur") [0] .textcontent = 12345;

cela a fonctionné !!! maintenant j'obtiens tout le XML avec des valeurs modifiées. acclamations !!

+0

Non, cela ne fonctionnera pas. – swatchai

0

Essayez ligne changer 5 à

document.getElementsByTagName("a:Value")[0].childNodes[0].data = '124241'; 

Modifier

est le code que j'écrit ici à « runkit.com » pour montrer comment je résoudre le problème comme mentionné dans le commentaire.

// some make-up xml 
var xml = ` 
<root> 
    <a:table xmlns:a="http://www.w3schools.com/furniture"> 
     <a:name>African Coffee Table</a:name> 
     <a:width>80</a:width> 
     <a:length>120</a:length> 
     <a:Value>old value</a:Value> 
    </a:table> 
</root>`; 
var DOMParser = require('xmldom').DOMParser; 
var parser = new DOMParser(); 
var document = parser.parseFromString(xml, 'text/xml'); 

// this won't work, but no error 
document.getElementsByTagName("a:Value").nodeValue = 12345; 

// check: you will get "undefined" on the console 
console.log(document.getElementsByTagName("a:Value").nodeValue); 

// check: you will get "old value" on the console 
console.log(document.getElementsByTagName("a:Value")[0].childNodes[0].data); 

// here is another try 
document.getElementsByTagName("a:Value")[0].childNodes[0].data = '12345'; 

// next, you will get "12345" on the console as expected 
console.log(document.getElementsByTagName("a:Value")[0].childNodes[0].data); 

var XMLSerializer = require('xmldom').XMLSerializer; 
var serializer = new XMLSerializer(); 
var xmlstring = serializer.serializeToString(document); 
console.log("xmlstring: \n" + xmlstring); 

La sortie correspondante de console.log():

undefined 
old value 
12345 
xmlstring: 
<root> 
    <a:table xmlns:a="http://www.w3schools.com/furniture"> 
     <a:name>African Coffee Table</a:name> 
     <a:width>80</a:width> 
     <a:length>120</a:length> 
     <a:Value>12345</a:Value> 
    </a:table> 
</root> 
+0

Merci de répondre swatchai..mais après avoir fait les changements suggérés par vous toujours obtenir une ancienne valeur en XML. :( –

+0

S'il vous plaît répondre .... –

+0

Cochez cette [lien] (https://runkit.com/swatchai/modify-xml-using-xmldom) – swatchai