• ベストアンサー

PHP5でのXMLパーサーについて

PHP5で $xml = simplexml_load_file($url)を使って ヤフーオークションAPIから帰ってきたデータを処理したいのですが、 titleは {$xml->item[0]->title}で取得できることがわかったのですが、 totalAuctionsなど@attributesの中のデータを取得することができません。 どのようにすればよいかご教授願います。 よろしくお願いします。 SimpleXMLElement Object (  [@attributes] => Array  (   [totalAuctions] => 3677   [totalPage] => 74   [curPage] => 1  )  [item] => Array  (   [0] => SimpleXMLElement Object   (    [auctionID] => *****    [title] => ******    [seller] => SimpleXMLElement Object     (      [id] => ***      [itemlist] =>http://api.auctions.yahoo.co.jp/AuctionWebService/V1/SellingList?sellerID=***      [rating] =>ttp://rating2.auctions.yahoo.co.jp/jp/show/rating?userID=***     )      [url] => http://********************************      [img]=>http://**********************************.jpg      [price] => **,000 円      [bids] => **      [endtime] => *月 **日 **時 **分      [reserved] => SimpleXMLElement Object       (       )      [option] => SimpleXMLElement Object      (       [0] =>      )     )   ) )

質問者が選んだベストアンサー

  • ベストアンサー
  • racchoman
  • ベストアンサー率71% (20/28)
回答No.2

SimpleXMLElement->attributes() で属性が取得できます。 http://jp.php.net/manual/ja/function.simplexml-element-attributes.php DOMを使った方が楽かもしれませんね。

hola1973
質問者

お礼

回答ありがとうございます。 SimpleXMLElement->attributes()は、既に試していましたが全く取得できませんでした。 例文にあるように foreach($xml->attributes() as $a => $b) { echo $a,'="',$b,"\"<br>"; } のようにすると取れることがわかりました。 自分でやっていたのは、 $xml->AuctionSearchResult[0]->attributes()->totalAuctionとか やっていたのですが、$xml->attributesでいいのですね。 非常に勉強になりました。ありがとうございました。

その他の回答 (1)

noname#26650
noname#26650
回答No.1

参考URLの、「レスポンスフィールド」の説明が 参考になるかもしれません。

参考URL:
http://developer.yahoo.co.jp/auctions/rest/categoryleaf/V1/categoryleaf.html
hola1973
質問者

補足

このレスポンスフィールドの部分は見ています。 結果はこのように帰ってきます。 <AuctionCategoryLeaf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:auc:leaf" xsi:schemaLocation="urn:yahoo:jp:auc:leaf http://api.auctions.yahoo.co.jp/AuctionWebService/V1/CategoryLeaf.xsd" totalFAuctions="69" totalAuctions="461" totalPage="11" curPage="1" categoryPath="オークション > この部分の属性のtotalFAuctions="69"とかがとりたいのです。 {$xml->attribute->totalFAuction}とやっても取得ができません。 よろしくお願いします。