Without seeing the actual XML you're parsing, it's hard to say, but if you want to stick with your current method, my guess would be that you need two nested loops... One that loops through the song elements, and a second that loops through the song element's children elements...
Assuming this XML...
<songs>
<song>
<title>song title 1</title>
<url>song url 1</url>
</song
<song>
<title>song title 2</title>
<url>song url 2</url>
</song
<song>
<title>song title 3</title>
<url>song url 3</url>
</song
</songs>
Your code should look something like this...
For Each song in xmlSongs.song
'initialize variables with empty strings, just in case they're missing in the XML
title = ""
url = ""
For Each e in song.GetChildElements()
If e.GetName() = "title" Then
title = e.GetText()
End If
If e.GetName() = "url" Then
url = e.GetText()
End If
Next
song = CreateSong(title, url)
items.push(song)
Next
Of course, rather than loop through every child element, you could call them explicity:
title = song.title.GetText()
url = song.url.GetText()
but you probably need a bit more error handling around that to be safe.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)