Die Response des Webservice sieht bspw. so aus.
<topartists user="sa303" type="overall">
<artist>
<name>Ellen Allien</name>
<mbid>2ff63f00-0954-4b14-9007-e19b822fc8b2</mbid>
<playcount>246</playcount>
<rank>1</rank>
<url>http://www.last.fm/music/Ellen+Allien</url>
<thumbnail>
http://userserve-ak.last.fm/serve/50/16045.jpg
</thumbnail>
<image>
http://userserve-ak.last.fm/serve/160/16045.jpg
</image>
</artist>
<artist>
<name>Ein anderer Musiker</name>
<mbid>2ff63f00-0954-4b14-9007-e19b822fc8b2</mbid>
<playcount>246</playcount>
<rank>1</rank>
<url>http://www.last.fm/music/Ellen+Allien</url>
<thumbnail>
http://userserve-ak.last.fm/serve/50/16045.jpg
</thumbnail>
<image>
http://userserve-ak.last.fm/serve/160/16045.jpg
</image>
</artist>
</topartists>
Der nachfolgende Groovy Code "parst" die Response und verarbeitet diese mittels dem Groovy XmlSlurper.
import java.net.URL;
def target = 'http://ws.audioscrobbler.com/1.0/user/sa303/topartists.xml'
def stream = new URL(target).openStream();
def topartists = new XmlSlurper().parse(stream)
topartists.artist.each{
println "${it.rank} - ${it.name} (${it.playcount} mal gehört)"
}
Und schon ist die Top 100 meiner Lieblings Musiker auf der Console ersichtlich. Und die Implementation der Sache kostete mich gerade mal 3 Minuten :). Das ist Groovy.