检索特定xml数据时出现问题

时间:2019-06-19 14:56:49

标签: php xml

在过去的几个小时中,我一直在尝试从XML文件https://cdn.animenewsnetwork.com/encyclopedia/api.xml?title=1检索特定数据

我要检索的数据的类型为“流派”,理想情况下,由于不同的XML文件具有不同的“流派”数量,我一直试图将“流派”放入循环中。 / p>

我一直在阅读XML和PHP手册以及谷歌搜索以找到可能的解决方案,但我已经空白了,如果有人能够指出正确的方向,我将不胜感激,谢谢

我尝试使用if语句,但是预期结果不是显示的结果

$url = "https://cdn.animenewsnetwork.com/encyclopedia/api.xml?title=1";

$result = simplexml_load_file($url);

foreach ($result->anime as $data) {

foreach ($result->anime as $data) {
    if ($a['type'] = "Genres") {
        foreach ($data->info as $info) {
            $a = $info->attributes();
            echo $a['type']." : ".$a['src'] .$info. "<br>";
        }
    }
}

我希望输出的是在>和<括号之间的,类型为“流派”的任何内容,预期的输出应为“动作戏剧科幻小说”,但实际输出是从“图片”到“ XML文件中的“官方网站”。

1 个答案:

答案 0 :(得分:1)

您的代码中有一些错误,但是您也可以实现所需的功能,而不必亲自测试每个属性。使用XPath可以检索所需元素的列表。

此代码使用//info[@type='Genres'],这意味着任何<info>属性等于type的{​​{1}}节点。对Genres的调用将返回一个仅包含匹配元素的列表,因此无需进行任何其他测试,只需输出您之后的信息即可。

xpath()