人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

AmazonAPIをPHPで触っているのですが、simplexml_load_file()でXMLオブジェクト(?)を生成し、print_rやvar_dumpで出力してみたのですが、見方がわからず目的の要素の取得の仕方(そこまでのパス(* -> * -> * の *))が分かりません。
例えば、print_rだと下記のように出力されます。
--
SimpleXMLElement Object ( [OperationRequest] => SimpleXMLElement Object ( [RequestId] => b15ee064-56b6-4997-a56a-2ebaff0e78e3 [Arguments] => SimpleXMLElement Object
--
下記のように見やすい形に整形すれば分かりやすいかと思うのですが、どうやれば出来るでしょうか?
<>
<>hoge<>
<>hogehoge<>
...

●質問者: rapuntuleru
●カテゴリ:コンピュータ インターネット
✍キーワード:hoge object PHP XML すいか
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● TransFreeBSD
●50ポイント

元々整形されていますがHTML中に出力しているから崩れるのだと思います。

  1. コマンドラインで実行する
  2. preで囲う
  3. HTMLのソースを見る

参考


2 ● a-kuma3
●50ポイント

まず、要素のたどり方ですが、↓が分かりやすいと思うんですが、どうでしょう?

http://manual.xwd.jp/ref.simplexml.html



で、

print_rやvar_dumpで出力してみたのですが、見方がわからず

については、期待してるものは print_r では得られない、と思ってください。

SimpleXML の中身をみたいジャン、ってときは、ひとてま必要です。

以下のようなコードで、全ての要素をたどることができます。

$xml = ...
displayChildrenRecursive($xml);

function displayChildrenRecursive($xmlObj,$depth=0) {
 foreach($xmlObj->children() as $child) {
 echo str_repeat('-',$depth).">".$child->getName().": ".$subchild."
";
 displayChildrenRecursive($child,$depth+1);
 }
}

http://debuggable.com/posts/parsing-xml-using-simplexml:480f4dfe-6a58-4a17-a133-455acbdd56cb

からの受け売りです。

ページの上から 1/5 くらいのところに「Accessing Children」という項があります。

英語が分からなくても、コードの例だけを追っていけば、なんとなく分かると思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ