Forum Discussion

360tv's avatar
360tv
Streaming Star
12 years ago

This XML parse / array push was working last night...

I've been pluggin away at all this stuff, everything was working wonderfuly. We've all been there... we make some change somewhere and we don't know what change you made that broke something, but you broke something...

so I'm running this function...

Function InitContentList() as object
list = CreateObject("roAssociativeArray")

xfer=createobject("rourltransfer")
xfer.seturl("[site]")
print "Getting Content from " + m.contentlist + "?" + "DeviceID=" + GetDeviceESN() + "&regtoken=" + loadRegistrationToken()
RawXMLData=xfer.gettostring()
PRINT RAWXMLDATA
xml=createobject("roXMLElement")
contentlist = []

if xml.parse(RawXMLData) then
for each obj in xml.item


contentlist.push({
title: obj.title.gettext()
id: obj.id.gettext()
SDBackgroundImageUrl: obj.SDBackgroundImageUrl.gettext()
HDBackgroundImageUrl: obj.HDBackgroundImageUrl.gettext()
ShortDescriptionLine1: obj.ShortDescriptionLine1.gettext()
ShortDescriptionLine2: obj.ShortDescriptionLine2.gettext()
function: obj.function.gettext()
url: obj.url.gettext()
par: obj.par.gettext()
register: obj.register.gettext()


})

print obj.title.gettext()
print obj.ID.gettext()
print obj.SDBackgroundImageUrl.gettext()
print obj.HDBackgroundImageUrl.gettext()
print obj.ShortDescriptionLine1.gettext()
print obj.ShortDescriptionLine2.gettext()
print obj.function.gettext()
print obj.url.gettext()
print obj.par.gettext()
print obj.register.gettext()
next


else
ShowDialog1Button("SORRY!", "Currently a problem with our servers. Please try again later.", "OK")
print "parse failed"
end if

'printAA(contentlist)
'printAA(contentlist[0])

return contentlist

End Function


PRINT RAWXMLDATA prints the XML in it's entirety. No problem.
print obj. works for each and gives me what should be there each time around.
when I printAA, I get "Nothing from for each. Looks like :?roFunction?"
when I printAA[0]... which worked before, It would print that array index no problem. now when I do it, I get Array operation attempted on variable not DIM'd. (runtime error &he7)
using contentlist = CreateObject("roArray", 100, true) or contentlist = [] returns same result (what's the difference anyhow? curious.)

2 Replies

  • You might try printing type(contentlist). You don't happen to have a function called contentlist, do you?

    --Mark
  • 360tv's avatar
    360tv
    Streaming Star
    Oh my god.... Yes....
    You nailed it.

    I DID add a function last night called contentlist(). Renamed it, it's working again.
    In hindsight using the same names for functions and variables seems like it'd be a bad idea anyway.