PHP:当名称包含保留字时,如何访问此XML实体?

时间:2010-08-10 22:22:07

标签: php xml simplexml

我正在尝试解析此Feed:http://musicbrainz.org/ws/1/artist/c0b2500e-0cef-4130-869d-732b23ed9df5?type=xml&inc=url-rels

我想抓住'relation-list'标签内的网址。

我尝试使用simplexml_load_file()使用PHP获取网址,但我无法使用$ feed-> artist-> relation-list访问该网址,因为PHP将“list”解释为{{1功能。

我有一种感觉我错了(没有太多的XML体验),即使我能够掌握我想要的元素,我也不知道如何提取他们的属性(我只是想要list()type字段。

任何人都可以轻轻地朝着正确的方向推动我吗?

感谢。 马特

1 个答案:

答案 0 :(得分:4)

看看php.net页面上的examples,他们实际上告诉你如何解决这个问题:

// $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
}

(未测试的)