-1

我正在尝试从 XML 提要的属性中获取 JSON 提要输出。我可以从 XML 中获取数据,但是无法正确格式化。该错误似乎与json_encode未将花括号添加到输出日期有关。这是我到目前为止的代码:

<?php

    $url = 'http://cloud.tfl.gov.uk/TrackerNet/LineStatus';

    if(!$xml = simplexml_load_file($url))
    {
        die("No xml for you");
    }

    $linestatus = array();

    foreach ($xml->LineStatus as $line)
    {
        echo $line->Line['Name'];
        echo $line->Status['Description'];
    }

    header('Content-Type: application/json');
    print_r(json_encode($linestatus));

?>
4

3 回答 3

0

s把echo一切都搞砸了。我认为您打算linestatus根据您的代码追加哪个仍然为空。

$linestatus[] = array(
    "name" => $line->Line['Name'],
    "description" => $line->Status['Description']
);

您还需要使用echo而不是print_r实际发出 JSON。

于 2013-10-15T15:49:42.937 回答
0

您声明$linestatus为一个数组,然后在最终对其进行编码并尝试输出它之前永远不要在其中放入任何东西。当然它不会像预期的那样工作!相反,您应该用值填充它:

$linestatus = array();

foreach ($xml->LineStatus as $line)
{
    $linestatus[] = $line->Line;
}

header('Content-Type: application/json');
print_r(json_encode($linestatus));
于 2013-10-15T15:49:53.363 回答
0

问题是您没有将名称和描述存储到数组中。

试试这个:

foreach ($xml->LineStatus as $line)
{
    $linestatus[] =  array('name' => $line->Line['Name']);
    $linestatus[] =  array('description' => $line->Line['Description']);
}

演示!

于 2013-10-15T15:49:57.390 回答