在过去的几个小时中,我一直在尝试从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文件中的“官方网站”。
答案 0 :(得分:1)
您的代码中有一些错误,但是您也可以实现所需的功能,而不必亲自测试每个属性。使用XPath可以检索所需元素的列表。
此代码使用//info[@type='Genres']
,这意味着任何<info>
属性等于type
的{{1}}节点。对Genres
的调用将返回一个仅包含匹配元素的列表,因此无需进行任何其他测试,只需输出您之后的信息即可。
xpath()