2013-04-30 107 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