シリコンバレーのマーケター日記

東京、シンガポールを経てシリコンバレーで働く、マーケター。英語、プログラミング、データ分析は次世代マーケターの必須スキルだと信じて進む。

XMLの取り扱い

APIを色々いじっている最近ですが、ついにXMLに出会いました。

JSONと勝手が違い躓いてしまったんで、記しておく。

 

1. file_get_contentsではなくcurlを使う。

htmlheaderにアクセストークンを仕込んでJSONと同じようにfile_get_contentsで一発だぜと思っていたのですが、どうしてもうまくいかない。curlを使って解決。

 

$url = 'https://product-search.api.cj.com/v2/product-search?'.
        '&keywords='. rawurlencode($_GET['keywords']);

$curl = curl_init($url); // 初期化

$options = array(
  //HEADER
  CURLOPT_HTTPHEADER => array(
      "Authorization: トークン",
  ),
  //Method
  CURLOPT_HTTPGET => true,//GET
);

//set options
curl_setopt_array($curl, $options); /// オプション値を設定
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($curl); // リクエスト実行

$result2 = simplexml_load_string($result);

2. XML Objectを配列にパースする

ここで、$resultには、XML Objectという形でデータが入っています。foreachで値を取り出せるかなと思いきや、ダメでした。JSONを経由させて配列にかえます。

$json = json_encode($result2);
$array = json_decode($json,TRUE);

これで配列になりました。もーみんなJSONでいいじゃん。。