2012-04-23 99 views
1

所以這是一個MusicBrainz的回報率(對於藝術家「Absynthe胸懷」和歌曲「Moodswing寶貝」)的示例XML:獲取藝術家從全國MusicBrainz的XML(使用PHP)

<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#" xmlns:ext="http://musicbrainz.org/ns/ext#-2.0"> 
    <recording-list offset="0" count="3"> 
     <recording ext:score="100" id="580d3e6f-6b2a-4f2c-bb06-a73486de50b8"> 
     <title>Moodswing Baby</title> 
     <length>230706</length> 
     <artist-credit>...</artist-credit> 
     <release-list> 
      <release id="f183e8a3-5326-44c9-8ab3-00a2dbb74caf"> 
       <title>Absynthe Minded</title> 
       <status>Official</status> 
       <release-group type="Album"/> 
       <date>2009</date> 
       <country>BE</country> 
       <medium-list>...</medium-list> 
      </release> 
      <release id="fccd0f03-30e5-44ac-8825-a61ad8b25442">...</release> 
      <release id="b3873ea0-0ed3-48f1-9703-4f5302460d0e">...</release> 
      <release id="b68fb38c-5a5a-4d24-bd41-2c50945cef39">...</release> 
     </release-list> 
     <puid-list>...</puid-list> 
     <isrc-list>...</isrc-list> 
     </recording> 
     <recording ext:score="100" id="359c27e3-5153-445e-aa66-71d8152d19e4">...</recording> 
     <recording ext:score="31" id="e9e4628a-61ff-4dd7-8fbb-a8d655d29a5a">...</recording> 
    </recording-list> 
</metadata> 

我試圖打印該國「是」在我的網站旁邊的藝術家與此此刻名稱:

<?php 
    $xml = simplexml_load_file("http://www.musicbrainz.org/ws/2/recording?query=moodswing%20baby%20AND%20artist:absynthe%20minded"); 
    $info = $xml->recording-list->recording[1]->release-list->release[1]->country; 
    echo $info; 
?> 

我用同樣的方法來檢索last.fm的數據庫(也XML)歌曲和歌手的相關信息,但它不」 Ť似乎與此(T_OBJECT_OPERATOR工作,希望「(」錯誤)。我試圖刪除[1],但沒有結果。

任何想法如何,我可以檢索和打印那個國家的?謝謝!包含字符的未在PHP變量名允許

回答

1

XML元素名稱必須在大括號包住或放置在第一可變,例如$recordingList = 'recording-list'; $xml->$recordingList;。此外,陣列從零開始:

$xml->{'recording-list'}->recording[0]->{'release-list'}->release[0]->country; 

http://codepad.org/Yhz3V3wE