用PHP将XML转换为JSON

3

如何从外部网站提取XML文件并编码为JSON?我想能够检查XML文件中的某个值是true还是false,但我只会用JSON来做这件事,找不到任何关于如何使用XML来实现的资料。以下是我使用JSON API进行的操作:

$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";
}

任何帮助都将非常棒!

我能否直接绕过整个 JSON 的处理,检查一个元素是否包含特定内容,并验证其真假?然后创建一个 if 语句,输出我想要的内容? - user1096935
1个回答

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之前,不要忘记对它们进行检查。我曾经因依赖于从外部网站获取的数据而遭受糟糕的经历。


非常感谢。这个完美地解决了问题。以下是可行的代码:`//Bomber $stringData = "StartaleBomber
"; $xml = simplexml_load_file("http://api.own3d.tv/liveCheck.php?live_id=173952"); $result = $xml->xpath("/own3dReply/liveEvent/isLive"); if ($result[0] == 'true'){ fwrite($fh, $stringData); }`
- user1096935

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接