0

私はそのようにXMLファイルからデータを取得しました

$response = simplexml_load_file($url);

print_r は次のように表示します

SimpleXMLElement Object
(
[artist] => SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [type] => Group
                [id] => b9fb5447-7f95-4a6a-a157-afed2d7b9f4c
            )

        [name] => He Is Legend
        [sort-name] => He Is Legend
        [country] => US
        [area] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [id] => 489ce91b-6658-3307-9877-795b68554c98
                    )

                [name] => United States
                [sort-name] => United States
                [iso-3166-1-code-list] => SimpleXMLElement Object
                    (
                        [iso-3166-1-code] => US
                    )

            )

    )

)

したがって、名前や国などのフィールドを次のように出力できます

echo $response->artist->name;
echo $response->artist->country;

ただし、属性配列のデータにアクセスできるようになると行き詰まります。たとえば、最初の属性配列からグループのタイプを取得するにはどうすればよいですか?

編集

また、そのような関数から詳細を返そうとしています

func getDetails($id) {

$response = simplexml_load_file('http://musicbrainz.org/ws/2/artist/'.$id);
$data = array();
$data['type'] = $response->artist->attributes()->type;
$data['country'] = $response->artist->country;

return $data;
}

print_r(getDetails());

私に与えます

MusicBrainz Object
(
)
4

1 に答える 1

1

attributes()次のメソッドを使用してアクセスできます。

echo $response->artist->attributes()->type;

SimpleXML ドキュメントの例 #5は、別の例を示しています。

于 2013-11-09T18:57:52.777 に答える