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

2020/12/16 21:52 · jquery ·  · 0评论

我尝试并未能找出如何从GET返回的XMLDocument中获取整个XML字符串的方法。关于如何在对象中查找或替换特定元素的问题很多,但是对于如何将整个文档作为字符串获取,我似乎找不到任何答案。

我正在使用的示例是从这里开始的我目前在“用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
    }
});

用例是我想将XML馈送到Flash插件,为此,我需要实际的XML作为字符串。

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

您希望将其作为纯文本而不是XML对象吗?dataType更改'xml''text'有关更多选项,请参见$ .ajax文档

如果两者都需要,则以XML文档和字符串的形式获取响应。你应该能够做

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

如果你想把它当作字符串为什么你指定dataType:xml不会再dataType:text是比较合适?

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

var xmlString = (new XMLSerializer()).serializeToString(xml);

如果只需要一个表示从jquery返回的xml的字符串,则只需将数据类型设置为“ text”,而不是尝试将xml解析回文本。以下内容应该只是从ajax调用中返回原始文本:

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

尽管已经回答了这个问题,但我想指出一个警告:在Internet Explorer中使用jQuery检索XML时,必须将content-type指定为“ text / xml”(或“ application / xml”),否则您将无法使用jQuery将数据解析为XML。

您可能会认为这是显而易见的事情,但是在使用Mozilla / Chrome / Opera而不是IE时引起了我的注意。当检索具有内容类型为“文本”的XML的“字符串”时,除IE之外的所有浏览器仍将允许您解析该数据(使用jQuery选择器),就好像它是XML。IE不会抛出错误,也不会将任何结果返回到jQuery选择语句。

因此,在您的示例中,只要您只需要XML的字符串序列化版本,并且不希望jQuery在XML DOM上进行任何选择,就可以将content-type设置为“ text”。但是,如果您还需要使用jQuery解析XML,则需要编写一个自定义例程,以将XML序列化为一个字符串,或者检索内容类型为“ xml”的XML版本。

希望能帮助到某人:)

您可以获取请求中使用的本机XMLHttpRequest对象。在我发布此答案时,jQuery文档说明了几种方法。

其中之一是通过成功回调的第三个参数:

success: function(xml, status, xhr){
    console.log(arguments);
    console.log(xhr.responseXML, xhr.responseText);
    console.log('Finished!');
}

举一个完整的例子:https :
//jsfiddle.net/44m09r2z/

本文地址:http://jquery.askforanswer.com/ruhecongjquerykualiulanqifanhuidexmldocumentzhonghuoquzhenggexmlzifuchuan.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!