2013-04-30 106 views
0

我想要track-id即列出的href屬性。XML解析/獲得標題中的href屬性

這是Spotify的xml文件:

http://ws.spotify.com/search/1/track?q=Sportfreunde+Stiller+AND+track:Ein+Kompliment 

這是我試過到目前爲止:

$url = "http://ws.spotify.com/search/1/track?q=Sportfreunde+Stiller+AND+track:Ein+Kompliment"; 

$xml = simplexml_load_file($url); 

foreach ($xml->track as $track) { 
    echo $track->name."<br>"; 
} 

如何上層級得到什麼?

這是所需的輸出:spotify:track:3ptJBraFGtaeprD4BHmTfV。在我的代碼中,我只是將軌道的名稱放在輸出中,以便您可以看到我處於錯誤的層次結構中。

+0

較高層級你的意思遍歷深入文檔樹?檢查[simplexml用法示例](http://php.net/simplexml.examples-basic),他們證明了這一點,並與示例。 – 2013-04-30 13:05:45

+0

[PHP SimpleXML +獲取屬性]的可能重複(http://stackoverflow.com/questions/10537657/php-simplexml-get-attribute) – hakre 2013-05-02 12:54:56

回答

0

您可以使用$ track-> attributes()而不是$ track-> name,它將輸出href屬性中的值。

例:

<?php 
$url = "http://ws.spotify.com/search/1/track?q=Sportfreunde+Stiller+AND+track:Ein+Kompliment"; 

$xml = simplexml_load_file($url); 

foreach ($xml->track as $track) { 
    echo $track->attributes() . "<br>"; 
} 
?> 
+0

我可以指定代碼輸出只有href屬性嗎? – bademeister 2013-04-30 13:15:01

+0

我想在其他變量中使用href屬性。通過這種方式,直接指向它將會很好。 – bademeister 2013-04-30 13:16:47

+0

追加 - > href屬性()只會輸出href屬性的值。你也可以像這樣訪問曲目:$ xml-> track [0] - > attributes() - > href;其中[0]是曲目的編號。 – 2013-04-30 13:38:32

0

print_r($xml),讓你得到什麼

它的工作對我很好我的名字,或導致類似

Ein Kompliment 
Ein Kompliment - Unplugged 
Ein Kompliment - Unplugged 
Ein Kompliment 
Ein Kompliment 
Ein Kompliment - Live aus der Olympiahalle München am 26.05.04 
Ein Kompliment - Live aus der Olympiahalle München am 26.05.04 
Ein Kompliment 
Ein Kompliment (Tribute To Sportfreunde Stiller) 
Ein Kompliment (Unplugged Karaoke Version) - Originally Performed By Sportfreunde Stiller 
Ein Kompliment - Originally Performed By Sportfreunde Stiller 
Ein Kompliment (Tribute To Sportfreunde Stiller) 
Ein Kompliment - Originally Performed By Sportfreunde Stiller 
Ein Kompliment (Karaoke Version) - Originally Performed By Sportfreunde Stiller 
Ein Kompliment (Karaoke Version) - Originally Performed By Sportfreunde Stiller