0

我正在尝试使用 Javascript 从http://www.bart.gov/dev/eta/bart_eta.xml访问数据,但是,我发现除非我的服务器上有该页面的副本,否则我不能这样做. 如何在我的服务器上创建一个与http://www.bart.gov/dev/eta/bart_eta.xml完全相同的代理页面?我已经尝试过 simplexml_load_file 和 file_get_contents,但是这两个函数都没有给我 XML 格式,它们给了我类似的东西object(SimpleXMLElement)#1 (2) { ["channel"]=> object(SimpleXMLElement)#2 (6) { ["title"]=> string(23) "BART Real Time ETA Feed" ["link"]=> string(50) "http://www.bart.gov/schedules/developers/etas.aspx" ["description"]=> string(127) "Real time estimated arrivals for Bay Area Rapid Transit. Use subject to terms at http://www.bart.gov/dev/schedules/license.htm" ["copyright"]=> string(86) "Copyright (C) 2012 San Francisco Bay Area Rapid Transit District. All rights reserved." ["date"]=> string(10) "07/01/2012" ["time"]=> string(15) "02:52:39 PM PDT" } ["station"]=> array(44) { [0]=> object(SimpleXMLElement)#3 (5) { ["name"]=> string(12) ...

4

3 回答 3

1

您需要先发送内容类型。

例如,将以下文件放在您的服务器bart_eta_proxy.php上,然后尝试访问它。

header("Content-type: text/xml; charset=utf-8");
echo file_get_contents('http://www.bart.gov/dev/eta/bart_eta.xml');

在这里,它正在工作: 在此处输入图像描述

于 2012-07-01T22:05:51.237 回答
0

您实际上可以通过 Javascript 从远程域访问信息:只需使用 AJAX 向该站点发出请求。

一个非常简单的例子,使用 jquery:

function handlePage(xml)
{ /* Do something with that XML-page. */ }

$.ajax('http://www.bart.gov/dev/eta/bart_eta.xml').success(handlePage);
于 2012-07-01T22:07:24.803 回答
-1

将所有数据存储在变量中后,为什么不直接遍历所有数据并将其存储在文件中呢?之后,您可以根据需要进行操作。

于 2012-07-01T22:04:16.960 回答