しばらくやっていないと忘れてしまうのでメモ
ヤフオク!のAPIを使って、結果をXMLでもらう時、最初のResultSetに、該当件数の個数(totalResultsAvailable)や今回返してもらったデータが何番目だとか(firstResultPosition)が入っているんだけど、これを取得するときの方法。
<ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:auc:search" xsi:schemaLocation="urn:yahoo:jp:auc:search http://auctions.yahooapis.jp/AuctionWebService/V2/search.xsd" totalResultsAvailable="682" totalResultsReturned="50" firstResultPosition="1"> <Result> <UnitsWord>チャイルドシート コンビ</UnitsWord> <UnitsWord>レカロ チャイルドシート</UnitsWord> <UnitsWord>チャイルドシート アップリカ</UnitsWord> <UnitsWord>チャイルドシート 新生児</UnitsWord> <UnitsWord>自転車 チャイルドシート</UnitsWord> <Item> <AuctionID>d143879531</AuctionID> <Title>美品 マシュマロベッド サーモ ベッド型チャイルドシート</Title>
やりかたは、
$sxml = simplexml_load_file($feedURL); var_dump($sxml->attributes());
attributes()を使うとResultSetの中に入っているものが表示されます。
さらに、その中のtotalResultsAvailableの値を取得するには、
$totalResultsAvailable = $sxml->attributes()->totalResultsAvailable; echo $totalResultsAvailable;
とすればOKです。
過去、何回もどうやるんだっけ?と思って毎回調べなおしていたので、自分のブログに書いておきます。
↓ 参考
PHP SimpleXML オブジェクト@(アットマーク)attributes のアクセス | MT Systems