jQuery XML解析/操作IE8错误

我正在使用jQuery $ .get加载XML文件。 加载内容后,我可以操作它并使用.append()将xml节点附加到我自己的元素。 这适用于chrome和firefox,但不适用于IE8。

xml文件的示例:

         

我需要分离所有的THEME节点并将它们附加到我自己的对象上。

这是我的代码的本质:

  var themes = $(""); $.get('url/themes.xml', function(data, textStatus, jqXHR) { var xml = data; themes.append($(xml).children("themes").children('theme')); }, 'xml'); 

仅在IE上的themes.append行上发生错误,这是日志显示的内容:

没有这样的接口支持

我可以不在IE上操作和附加XML元素吗?

有两个问题:

  1. 来自文档:

    查询(html [,ownerDocument])
    html:即时创建的HTML字符串。 请注意,这解析HTML 而不是XML

  2. IE遵循DOM规范,不接受在文档之间移动节点。

这解决了这两个问题,也适用于我在IE中:

  //themes will be a jQuery-Object containing the documentElement var themes = $($.parseXML("").getElementsByTagName('*')[0]); $.get('url/themes.xml', function(data, textStatus, jqXHR) { var xml = $($.parseXML(data)); themes.append(xml.children("themes").children('theme')); }, 'text' ); 

尝试以这种方式序列化fetch XML元素:

 function xml2Str(xmlNode) { try { // Gecko-based browsers, Safari, Opera. return (new XMLSerializer()).serializeToString(xmlNode); } catch (e) { try { // Internet Explorer. return xmlNode.xml; } catch (e) {//Strange Browser ?? alert('Xmlserializer not supported'); } } return false; }