there must out there can spot error! i'm parsing xml feed , running through loop items on page:
www.highlandradio.com/feed/ i encountering error on line setting variable mp3test. want set equal url attribute of enclosure tag (if exists). why including test check if each item has enclosure tag, if setting equal url tag if doesn't setting equal 'null.mp3' now. when running through loop getting correct numbers amount , on iterations of loop, crashes. using titanium , not getting proper error messages. highlights line set mp3test , says debug current instruction pointer. i'm going crazy this. please help.
var url="http://www.highlandradio.com/feed/"; var xhr = titanium.network.createhttpclient(); xhr.onload = function() { // data returned blog, start parsing var doc = this.responsexml.documentelement; // begin looping through blog posts var items = doc.getelementsbytagname("item"); var enclosure = doc.getelementsbytagname("enclosure"); console.log("newest enclosure length -----------"+enclosure.length); (var = 0; < items.length; i++) { var itemsenclosurelength=items.item(i).getelementsbytagname("enclosure").length; var itemsenclosureexists=items.item(i).getelementsbytagname("enclosure"); console.log("exists ----------------------------------"+ itemsenclosureexists); console.log("newest enclosure length ---------------------- [ "+i+ " ]" + itemsenclosurelength); var str=items.item(i).getelementsbytagname("content:encoded").item(0).text; console.log("string test "+ str); var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i; var urlmatch = str.match(patt1); console.log("matches tester -----------------------------------" + typeof urlmatch); data.push({ title: items.item(i).getelementsbytagname("title").item(0).text, leftimage: str.match(patt1) !== null ? str.match(patt1)[0] : 'image_news.png', datatopass: items.item(i).getelementsbytagname("description").item(0).text, mp3test: itemsenclosurelength > 0 ? items.item(i).getelementsbytagname("enclosure").item(i).getattribute("url"):'null.mp3' }); console.log("check --------------------------"+ mp3test); } bump2
the problem was using 2 counters had same value! silly mistake but...here's solution:
var itemsenclosurelength=items.item(i).getelementsbytagname("enclosure").length; var itemsenclosureexists=items.item(i).getelementsbytagname("enclosure"); if (itemsenclosureexists){ (n=0; n<itemsenclosurelength; n++){ mp3=items.item(i).getelementsbytagname("enclosure").item(n).getattribute("url"); } } else{ mp3= 'null.mp3'; }
Comments
Post a Comment