php从远程url获取xml而不是文件

时间:2013-09-13 13:24:07

标签: php xml cross-domain

我正在尝试从此网址获取xml数据。

http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V 我可以直接在我的浏览器栏中输入网址并获得所需的结果。

我正在尝试使用下面的代码来获取xml并将其返回到我的浏览器,但现在位于正确的域中,以便可以通过javascript访问它。

<!DOCTYPE html>
<html>
<head>
    <link type='text/css' rel='stylesheet' href='style.css'/>
    <title>Get Started!</title>
</head>
<body>
    <p><?php 
    /*echo file_get_contents("http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V");*/
    echo simplexml_load_file("http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V");
    ?></p>
</body>
</html>

我已经尝试过file_get_contents和simplexml_load_file 但都没有成功

我认为问题在于url末尾没有文件。 以下没有工作的东西

2 个答案:

答案 0 :(得分:4)

simplexml_load_file()返回一个对象而不是XML字符串。即使这样,使用当前代码,XML也会在HTML中丢失。以下内容相当于直接访问URL:

header('Content-type: application/xml');
echo file_get_contents('http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V');

要确保您可以解析XML,请尝试此操作。它加载XML并打印出根节点的名称 - 在本例中为 ROOT

$xml = simplexml_load_file($url); //retrieve URL and parse XML content
echo $xml->getName(); // output name of root element

这有帮助吗?

答案 1 :(得分:2)

请参阅

的文档

http://php.net/manual/en/simplexml_load_file

打印输出的示例

<?php
    $xml = simplexml_load_file('http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V');
    print_r($xml);
?>

或查看手册

http://php.net/manual/en/function.echo.php

通过file_get_contents()

输出字符串返回
<?php
    $xml = file_get_contents("http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V");
    echo $xml;
?>