parseFromString返回' undefined'

时间:2014-06-05 10:32:25

标签: javascript domparser

我的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!

1 个答案:

答案 0 :(得分:1)

我认为此属性仅适用于IE(http://help.dottoro.com/ljhwhicc.php)。也许你应该使用XMLSerializer