我的parseFromString返回'undefined',既不是'< parsererror ......'也不是解析xml!
我找不到原因。你能帮忙吗?
var parser = new DOMParser(), // https://developer.mozilla.org/en-US/docs/Web/API/DOMParser
_sourceDOC = null;
alert('_sourceXML: "' + _sourceXML.innerHTML + '"'); // returns string with xml source :-)
_sourceDOC = parser.parseFromString(_sourceXML.innerHTML,"text/xml");
alert('parseFromString: ' + _sourceDOC.xml); // returns 'undefined', neither '<parsererror…' nor parsed xml!
第一个警告:
PS:另一方面,这可以按预期工作。但我使用Firefox 17而不想使用ActiveX。
var xmlDocIE = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.6.0");
xmlDocIE.async = false;
xmlDocIE.loadXML(_sourceXML.innerHTML);
PPS:解决方案:
var parser = new DOMParser(),
_sourceDOC = null,
serializer = new XMLSerializer (),
_sourceDOC = parser.parseFromString(_sourceXML.innerHTML,"text/xml");
str = serializer.serializeToString (_sourceDOC);
alert('parseFromString: ' + str); // Result as expecded! :-)
因此,我在我的脚本中替换了错误的代码(resultDoc.xml):
_destination.innerHTML = resultDoc.xml;
通过正确的代码,它工作正常:
_destination.replaceChild(resultDoc, _destination.childNodes[0]);
谢谢,user1279647!