You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP解析Kodi/XBMC影视NFO文件:Ratings数据提取问题求助

解析Kodi NFO文件Ratings节点的PHP实现

在开发解析Kodi电影/剧集NFO文件的PHP脚本时,使用SimpleXML读取文件并转换为关联数组的方式,常会遇到ratings节点下评分项无法正确提取的问题——循环报错或返回空结果。核心需求是提取每个评分的名称、评分值及投票数,以下是可行的解决代码:

典型Kodi NFO的Ratings结构

<ratings>
  <rating name="imdb" max="10" default="true">
    <value>8.7</value>
    <votes>123456</votes>
  </rating>
  <rating name="tmdb" max="10">
    <value>8.5</value>
    <votes>78901</votes>
  </rating>
</ratings>

正确的解析代码

// 加载NFO文件
$xml = simplexml_load_file('your_movie.nfo');
$extractedRatings = [];

// 遍历每个rating节点
foreach ($xml->ratings->rating as $rating) {
    // 强制类型转换避免SimpleXMLElement对象干扰
    $extractedRatings[] = [
        'name'  => (string)$rating['name'],
        'value' => (float)$rating->value,
        'votes' => (int)$rating->votes
    ];
}

// 查看结果
print_r($extractedRatings);

关键注意事项

  • 避免直接用json_decode(json_encode($xml), true)转关联数组:当ratings下只有单个rating节点时,转换后会变成对象而非数组,导致循环报错;直接操作SimpleXMLElement节点集合更稳定。
  • 必须对SimpleXMLElement的属性和子节点做强制类型转换:默认返回的是SimpleXMLElement对象,直接使用会导致后续处理异常。

内容的提问来源于stack exchange,提问作者crosenblum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 08:07:08