如何加载外部XML以将数据导入Phonegap应用程序

时间:2014-05-23 14:36:10

标签: javascript xml cordova

我正在使用Phonegap构建应用程序,该应用程序从外部URL获取数据,然后使用javascript显示信息。

我有

这是我的索引文件中的代码,用于获取xml:

if (window.XMLHttpRequest) {/* code for IE7+, Firefox, Chrome, Opera, Safari */ xmlhttp=new XMLHttpRequest(); }
else {/* code for IE6, IE5 */ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.open("GET","http://EXAMPLESITE.com/EXAMPLE.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;  

我目前正在使用xcode对其进行测试,无法在模拟器或测试设备上显示任何内容。

我还尝试在plist中添加一个ExternalHosts键,并列出了我想要访问的域名。

有人可以请我排除故障吗?谢谢

1 个答案:

答案 0 :(得分:0)

XMLHttpRequest是异步的,您需要在尝试访问XML之前等待XML加载。为此,您可以使用onLoad处理程序:

if (window.XMLHttpRequest) {/* code for IE7+, Firefox, Chrome, Opera, Safari */ xmlhttp=new XMLHttpRequest(); }
else {/* code for IE6, IE5 */ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.open("GET","http://EXAMPLESITE.com/EXAMPLE.xml",false);
xmlhttp.onLoad = function() {
    // Data is loaded, now it can be used:
    xmlDoc = xmlhttp.responseXML;
    // Do something with xmlDoc...
}
xmlhttp.send();

还有其他一些你应该寻找的东西,比如错误等等。请参阅那里的完整文档 - https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest