PHP: Как я могу получить доступ к этому объекту XML, если его имя содержит зарезервированное слово? - PullRequest
0 голосов
/ 11 августа 2010

Я пытаюсь разобрать этот фид: http://musicbrainz.org/ws/1/artist/c0b2500e-0cef-4130-869d-732b23ed9df5?type=xml&inc=url-rels

Я хочу получить URL-адреса внутри тега'рани-списка '.

Я пытался извлечь URL с помощью PHP, используя simplexml_load_file(), но я не могу получить к нему доступ, используя $ feed-> artist-> Relations-List, поскольку PHP интерпретирует "list" как функцию list(). *

У меня такое ощущение, что я ошибаюсь (не очень много знаком с XML), и даже если я смог получить нужные элементы, я не знаю, как извлечь их атрибуты (я просто хочу поля type и target).

Может ли кто-нибудь мягко подтолкнуть меня в правильном направлении?

Спасибо. Matt

1 Ответ

4 голосов
/ 11 августа 2010

Посмотрите примеры на странице php.net, они на самом деле говорят вам, как решить эту проблему:

// $feed->artist->relation-list
$feed->artist->{'relation-list'}

Чтобы получить атрибут узла, просто используйтеимя атрибута в виде индекса массива на узле:

foreach( $feed->artist->{'relation-list'}->relation as $relation ) {
    $target = (string)$relation['target'];
    $type = (string)$relation['type'];
    // Do something with it
}

(не проверено)

...