【问题标题】:Process XML returned via Ajax with E4X?使用 E4X 处理通过 Ajax 返回的 XML?
【发布时间】:2009-05-22 14:53:07
【问题描述】:

我正在通过 Ajax 加载一些 XML。

这是脚本的 sn-p:

ajaxRequest.onreadystatechange = function()
    {
        if(ajaxRequest.readyState == 4)
        {
            document.getElementById('loading').innerHTML = 'done';
            google_xml = ajaxRequest.responseXML;
            document.getElementById('xml').innerHTML = 'XML: '+google_xml.toXMLString();
        }
    }

我正在加载的页面是一个 XML 文件,该文件加载是因为如果我 alert(ajaxRequest.responseText);我看到了。但我不确定如何将其作为 XML 处理,我认为上面的脚本会将 XML 作为字符串放入

元素中,但它没有。

我在 Actionscript 中经常使用 E4X 处理 XML,但在 JS 中从未使用过,有人可以给我提示吗?谢谢!

【问题讨论】:

    标签: javascript xml ajax e4x


    【解决方案1】:

    我不确定您使用的是什么浏览器,但Firefox is currently the only browser with good support for E4X

    不过,要扩展此答案,您可能需要了解替代方案:

    在浏览器中解析 XML 有很多支持,只是不支持 E4X。您可能想要使用 jQuery 并使用 dataType:XML。请参阅 xml.com/pub/a/

    【讨论】:

    • 真的吗?那太糟糕了..我使用的浏览器无关紧要,这是给我的用户而不是给我的......这对我的整个应用程序造成了很大的影响。 :(
    • 在浏览器中解析 XML 有很多支持,只是不支持 E4X。您可能想要使用 jQuery 并使用 dataType:XML。见xml.com/pub/a/2007/10/10/jquery-and-xml.html
    【解决方案2】:

    对于那些追随同样问题的人:

    var x = new XML('字符串值');

    ...现在您的 x 值是一个 xml 对象,您可以使用 E4X 进行操作!

    【讨论】:

      【解决方案3】:

      只需在请求完成后使用 xhr.responseXML,它已经是一个支持 DOM 的 XML 对象。如果浏览器支持 XmlHttpRequest 对象,这应该可以直接工作。此外,IIRC,您可以使用 jQuery 来包装对象并使用它自己的 find/each 方法来遍历对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-26
        • 2011-05-08
        • 1970-01-01
        • 1970-01-01
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多