Javascript:执行GET请求和解析响应

Javascript:执行GET请求和解析响应,javascript,parsing,get,Javascript,Parsing,Get,我正在编写一个MacOs小部件,它必须解释来自以下网站的巴士到达检索信息: 我必须发出Get请求并解析响应。。我尝试: var xmlHttp = null; var theUrl = "http://m.gtt.to.it/m/it/arrivi.jsp?n=876"; xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET",theUrl,false); xmlHttp.send( null ); xmlDoc=xmlHttp.response

我正在编写一个MacOs小部件,它必须解释来自以下网站的巴士到达检索信息:

我必须发出Get请求并解析响应。。我尝试:

var xmlHttp = null;
var theUrl = "http://m.gtt.to.it/m/it/arrivi.jsp?n=876";
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET",theUrl,false);
xmlHttp.send( null );
xmlDoc=xmlHttp.responseXML;

但我不知道文档的结构如何导航?

最好通过以下操作使您的Ajax调用异步:

xmlhttp.open("GET", theUrl, true);
这将防止你的用户干扰你网站上烦人的“封锁”期

如果这样做,则必须添加一个
onreadystatechange
处理程序,以便在那里解析传入数据并显示要显示的数据

xmlhttp.onreadystatechange = function() {
   if (xmlhttp.readyState==4 && xmlhttp.status == 200) {
      var content = xmlhttp.responseText;
      //Parse your content here...
   }
} 
显然,您必须知道要检索哪些数据才能对其进行解析。但是,您只需分析
responseText
并找到始终包含数据的元素。然后简单地从那些
标记中检索值并相应地显示它

例如,如果要在id设置为到达时间的
中检索数据,请执行以下操作:

content.getElementById('arrival-time').innerHTML;
但我不知道文档的结构如何导航


您可以走到树上,查看其中节点的注释类型和节点名称,或者手动检查XML文档以了解其结构。

我认为您缺少“onreadystatechange”处理程序。它将在得到响应时被调用。然后可以执行所需的操作。如果您不知道该结构,请将响应写入控制台或向其发出警报,或附加到div/HTML元素。这是函数中的代码,我知道我需要一个处理程序。尽管它很可怕,但请求被设置为同步,因此无需监视就绪状态的更改。HTMLElementNodes没有
text
方法。我在几年前将文本更改为innerHTML()。请在评论之前刷新您的页面。:)
innerHTML
也不是一种方法。非常感谢您的回复,但我无法可视化结构,有一种方法可以将xml回复存储在磁盘上?@LuigiTagliamonte您不能可视化结构是什么意思?只需分析您检索的HTML并找到包含您想要使用的值的元素。