只获取大型xml对象的前N个元素

时间:2017-02-15 07:49:19

标签: php xml performance curl optimization

我正在集成第三方API,每次搜索返回大约20MB的数据。它返回约500项。这对我来说太多了。所以,我想只使用前50个项目。

我的尝试:

$xml    = simplexml_load_string($apiRequest);
$object = json_decode(json_encode($xml));
$items  = array_slice($object, 0, 50);

API的近似响应时间约为50秒(当我在邮递员身上测试时)。收到响应后,将其转换为std对象并进行其他计算会减慢很多。所以,我想加快速度。我想分割收到前50个项目的XML响应,然后将其转换为std对象。有什么办法吗?其他建议受到高度赞赏。

1 个答案:

答案 0 :(得分:-1)

如果我要解析如此庞大的XML响应,我会使用流解析器。

我没有经验,但快速谷歌搜索指向https://github.com/prewk/xml-string-streamer

试一试,如果您有特定问题,我们可以尝试解决这个问题。