php - 使用 PHP 将 XML 转换为 JSON

标签 php xml json

我如何从外部站点提取 xml 文件以在 JSON 中进行编码?我希望能够检查 XML 文件中的值是真还是假,但我只知道如何使用 JSON 执行此操作,而无法找到有关如何使用 XML 执行此操作的任何信息。这就是我使用 JSON API pull 对 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";
}

任何帮助都会很棒!

最佳答案

您走在正确的轨道上。使用此加载 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。我有过依赖从外部网站提取的数据的糟糕经历。

关于php - 使用 PHP 将 XML 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8731379/

相关文章:

php - 通过表单输入进行 SQL 注入(inject)攻击

php - 使用 laravel 5 和 Auth 更新登录用户帐户设置

php - Woocommerce 变体产品图片未显示在订单电子邮件中

php - 我把session_start函数放在哪里?

xml - 如何在 Maven 中关闭 findbugs "Redundant nullcheck"?

java - 如何在freemarker中转义json字符串

java - 使用 JavaCC 解析树表示

xml - XSLT 用于将原始 XML 插入 HTML 代码标记

c# - 避免继承 JsonConverter 递归

c# - Json.Net - 反序列化包含对象列表的对象列表