2017-05-15 5 views
0

Ich habe folgendes xml:Ersetzen Tag-Inhalt mit HTML-String

<foo><toReplace/></foo> 

I <toReplace/>-Tag mit der folgenden Zeichenfolge ersetzen möchten:

"<b>bar</b>" 

Wie kann ich das tun?

Im Moment habe ich den folgenden Code:

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>" 

Das Problem ist, das ist HTML entkommt. Wie kann ich den Inhalt hier durch den HTML-String ersetzen?

Antwort

1

Sie immer das Modul von npm

var unescape = require('unescape'); 

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

Wenn ich Ihren Code getestet gibt es einen kleinen Tippfehler verwenden: don (toReplacce statt 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

Aber ich Ich möchte das ganze XML nicht entzippen. Ich möchte nur das Teil, das ich ersetze, nicht entzippen. – user99999

+0

Haben Sie versucht, parser.getElementsByTagName ("toReplacce") [0] .content = ... –

+0

Inhalt ist nicht definiert. Es ist das Element-Objekt. – user99999