2017-02-15 15 views
1

各検索で約20MBのデータを返すサードパーティのAPIを統合しています。それは約500項目を返します。これは私にはあまりにも多くのデータです。だから、私は最初の50項目を使用したいです。大きなxmlオブジェクトの最初のN要素を取得する

私の試み:(私は郵便配達で試験したとき)APIから

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

おおよその応答時間は約50秒です。応答を受け取った後、それをstdオブジェクトに変換して、他の計算を行うのが非常に遅くなります。だから、私はスピードアップしたい。最初の50項目を取得したXML応答を分割し、それを標準オブジェクトに変換したいと考えています。それを行う方法はありますか?その他の提案は非常に高く評価されています。

+0

ほとんどのAPIでは、結果の数を制限するパラメータを追加できるため、変換時間を短縮するだけでなく、受信する時間も改善できます。 –

+0

JSONにシリアル化してXMLを直接読み込まないようにしてください。 XMLReaderクラスを使用してみてください。これは、その大きなファイル用の現在の標準APIです。 – ThW

+0

私はプロバイダ@lukegvと通信していますが、結果の数を制限することはできません。だから、私は問題に直面している – vijayrana

答えて

-1

このような巨大なXMLレスポンスを解析する場合は、ストリームパーサーを使用して行います。

私は経験はありませんが、グーグル検索ではhttps://github.com/prewk/xml-string-streamerとなっています。

具体的な問題がある場合は、その問題を解決しようとすることができます。

+0

@avk dai – vijayrana

関連する問題