如何从jQuery(跨浏览器)返回的XMLDocument中获取整个XML字符串?

ice*_*eam 40 html javascript xml jquery xmldocument

我已经尝试过但未能找到如何从GET返回的XMLDocument中获取整个XML字符串.关于如何查找或替换对象中的特定元素,有很多关于SO的问题,但我似乎无法找到如何将整个文档作为字符串获得任何答案.

我正在使用的例子来自这里."做xml的事情" - 部分是我现在所处的位置.我觉得这应该是非常微不足道的,但我没有弄清楚如何.是否有可用于此目的的"xml.data()"或类似内容?

$.ajax({
    url: 'document.xml',
    type: 'GET',
    dataType: 'xml',
    timeout: 1000,
    error: function(){
        alert('Error loading XML document');
    },
    success: function(xml){
        // do something with xml
    }
});
Run Code Online (Sandbox Code Playgroud)

用例是我想将xml提供给flash插件,为此我需要将实际的XML作为字符串.

jit*_*ter 54

如果您想要两者,请将响应作为XML Document和字符串获取.你应该能做到的

success: function(data){
  //data.xml check for IE
  var xmlstr = data.xml ? data.xml : (new XMLSerializer()).serializeToString(data);
  alert(xmlstr);
}
Run Code Online (Sandbox Code Playgroud)

如果你想要它作为字符串,为什么你指定dataType:xml不会dataType:text更合适?


Bal*_*usC 44

我需要将实际的XML作为字符串

你想要它作为纯文本而不是XML对象?改变dataType'xml''text'.有关更多选项,请参阅$ .ajax文档.


Pau*_*bas 23

您还可以在java脚本中轻松地将xml对象转换为字符串:

var xmlString = (new XMLSerializer()).serializeToString(xml);
Run Code Online (Sandbox Code Playgroud)

  • 似乎不适合我:TypeError:XMLSerializer.serializeToString的参数1没有实现接口Node. (3认同)