2017-05-15 4 views
0

je le code XML suivant:Remplacement contenu de la balise avec la chaîne html

<foo><toReplace/></foo> 

Je veux remplacer tag <toReplace/> par la chaîne suivante:

"<b>bar</b>" 

Comment puis-je faire cela?

En ce moment, j'ai le code suivant:

var xml = "<foo><toReplace/></foo>"; 
var parser = new dom.DOMParser().parseFromString(xml, "text/xml"); 
parser.getElementsByTagName("toReplacce")[0].textNode = "<b>bar</b>"; 
console.log(parser.toString()); // "<foo>&lt;b>bar&lt;/b>" 

Le problème est qu'il est échappe HTML. Comment puis-je remplacer le contenu avec la chaîne HTML ici?

Répondre

1

vous pouvez toujours utiliser le module de NPM

var unescape = require('unescape'); 

console.log(unescape(parser.toString())) 

Quand je teste votre code il y a une petite faute de frappe: (toReplacce au lieu de toReplace)

var dom = require('xmldom'); 

var xml = "<foo><toReplace/></foo>"; 
var parser = new dom.DOMParser().parseFromString(xml, "text/xml"); 
var a = parser.getElementsByTagName("toReplace")[0]; 
//console.dir(a); 
a.textvalue = "<b>bar</b>"; 
console.log(parser.toString()); 

enter image description here

+0

mais je ne Je ne veux pas perdre tout le XML. Je ne veux simplement pas perdre la partie que je remplace. – user99999

+0

Avez-vous essayé parser.getElementsByTagName ("toReplacce") [0] .content = ... –

+0

le contenu n'est pas défini. C'est l'objet Element. – user99999