使用PHP将XML转换为JSON

时间:2012-01-04 17:39:48

标签: php xml json

如何从外部网站提取xml文件以使用JSON进行编码?我希望能够检查XML文件中的值是真还是假,但我只知道如何使用JSON执行此操作,并且无法找到有关如何使用XML执行此操作的任何内容。这就是我使用JSON API拉动JSON所做的事情:

$stringData = "<a href=\"http://www.twitch.tv/coldrewbie\"</a>coL.drewbie<br>\n";
$json_file = file_get_contents("http://api.justin.tv/api/stream/list.json?channel=coldrewbie");
$json_array = json_decode($json_file, true);

if ($json_array[0]['name'] == 'live_user_coldrewbie') {
    fwrite($fh, $stringData);
}

唯一的问题是我想要提取的其他网站使用XML文档作为其API而不是使用JSON选项。这就是我所拥有的,但我不认为这是正确的,尽管我可能有点接近:

$xml = simplexml_load_file("http://api.own3d.tv/liveCheck.php?live_id=173952");
$json_file = json_encode($xml);
$json_array = json_decode($json, true);

if ($json_array[0]['isLive'] == 'true'){
    echo "yup";
}

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。一旦你用这个加载XML:

$xml = simplexml_load_file("http://api.own3d.tv/liveCheck.php?live_id=173952");

您可以通过调用xpath方法并将其传递给xpath查询来获取isLive节点的值:

$result = $xml->xpath("/own3dReply/liveEvent/isLive");

此方法返回一个数组,因此您可以迭代结果或只打印出来:

print($result[0]);

在继续使用之前,请不要忘记检查$xml$result。我依赖从外部网站获取的数据有过糟糕的经历。