開発環境:PHP
利用API:電脳卸Webサービス


以下ソース

----- こ こ か ら -----
<?php
//EUC-JPへ文字コード変換
function convert($str) {
return mb_convert_encoding($str, 'EUC-JP', 'auto');
}
?>

<?php
//キーワードをEUCからUTF-8へ文字コード変換
$sword = mb_convert_encoding('うら', UTF-8', 'EUC-JP');

//電脳卸のスクリプトURL作成
$xml_url = 'http://webservice.d-064.com/get_tag.php';
$xml_url .= '?hid=xxxxxx';
$xml_url .= '&email=xxx@aaa.com';
$xml_url .= '&sword='.$sword;
$xml_url .= '&type=heavy';
//$xml_url .= '&page=1';
//$xml_url .= '&category_id=0001';
//$xml_url .= '&category_depth=1';

//XMLデータをパース?
$xml = simplexml_load_file($xml_url);

echo '<html>';
echo '<body>';
echo '検索結果:'.convert($xml->TotalResults).'<br>';
echo 'トータルページ数'.convert($xml->TotalPages).'<br>';
echo '<br>';

//Detailsオブジェクトの数だけ繰り返し表示
foreach($xml->Details as $Details)
{
echo '商品名'.convert($Details->ProductName).'<br>';
echo '<img src='.convert($Details->ImageUrlMedium).'>';
echo '値段'.convert($Details->Price).'<br>';

//商品説明を改行で区切って表示
$ItemDetail = preg_split('/\n/', convert($Details->ItemDetail));
echo '商品説明';
foreach($ItemDetail as $item)
{
echo $item.'<br>';
}
echo '<br>';
echo '<hr>';
}
echo '</body>';
echo '</html>';

?>
----- こ こ ま で -----


今回はPHPのsinpleXMLを使いました。

sinpleと冠してあるだけあってホントシンプル。

XMLデータをsimplexml_load_file()に食わせるだけ。

これだけでXMLオブジェクトが出来ます。

例えば。

<addressbook>
<name>
<familyname>一郎</familyname>
<lastname>田中</lastname>
<nickname>いっちー</nickname>
</name>
<phone>
<homephone>0312345678</homephone>
<mobilephone>09012345678</mobilephone>
</phone>
<address>○○県××市△△町1-2-3</address>
<mailaddress>wktk@2ch.orz</mailaddress>
<addressbook>

てなXMLデータがあったとします。

こいつをオブジェクト化してやると、オブジェクト配列として各タグ内容が取得できるっつースンポーですわ。

$addressbook->name->familyname;

てな感じで。

これの表示内容はもちろん「一郎」ですわな。

上記のソースにある電脳卸のURLは、引数に応じてXMLを生成するので、その内容をsimpleXMLで食う、と。

これだけ。

いやぁ、簡単簡単。

さて、何をつくろうかな~。