- // create table view data object
- var data = [];
- var xhr = Ti.Network.createHTTPClient();
- //xhr.open("GET","http://v2.0.news.tmg.s3.amazonaws.com/feeds/news.xml");
- xhr.open("GET","http://www.musiknyt.dk/index.php?id=iphone_latest100_nyheder&type=103");
- //xhr.open("GET","http://snowboard.riders.dk/feed/");
- xhr.onload = function()
- {
- try
- {
- var xmlStr = this.responseText;
- var doc = Ti.XML.parseString(encodeXMLString(this.responseText)).documentElement;
- //var doc = this.responseXML.documentElement;
- var items = doc.getElementsByTagName("entry");
- var x = 0;
- for (var c=0;c<items.length;c++)
- {
- var item = items.item(c);
- var thumbnails = item.getElementsByTagName("media:thumbnail");
- var title = item.getElementsByTagName("title").item(0).text;
- var row = Ti.UI.createTableViewRow({
- height:60,
- backgroundImage:'/images/tablebackground.png',
- });
- var label = Ti.UI.createLabel({
- text:title,
- left:5,
- right:5
- });
- row.add(label);
- data[x++] = row;
- row.url = item.getElementsByTagName("link").item(0).text;
- var temp = item.getElementsByTagName("summary").item(0).firstChild.text;
- var staticHTMLStart = '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da"><head><meta content="text/html; charset=UTF-8" http-equiv=Content-Type"></head><body><div>';
- var staticHTMLSlut = '</div></body></html>';
- row.html = staticHTMLStart + temp + staticHTMLSlut;
- //row.html = encodeXml(item.getElementsByTagName("summary").item(0).firstChild.text);
- //row.title = item.getElementsByTagName("title").item(0).text;
- var titlemads = decodeURI(item.getElementsByTagName("title").item(0).text);
- row.title = titlemads;
- }
- var tableview = Titanium.UI.createTableView({data:data});
- Titanium.UI.currentWindow.add(tableview);
- tableview.addEventListener('click',function(e)
- {
- var w = Ti.UI.createWindow({title:e.row.title});
- //var wb = Ti.UI.createWebView({url:e.row.url});
- //var wb = Ti.UI.createWebView({url:'http://www.dr.dk'});
- var wb = Ti.UI.createWebView({html:e.row.html});
- w.add(wb);
- var b = Titanium.UI.createButton({
- title:'Close',
- style:Titanium.UI.iPhone.SystemButtonStyle.PLAIN
- });
- w.setLeftNavButton(b);
- b.addEventListener('click',function()
- {
- w.close();
- });
- w.open({modal:true});
- });
- }
- catch(E)
- {
- alert(E);
- }
- };
- xhr.send();
- function mgDecodeHTMLEntities(str)
- {
- //substitutes html numeric entities with the corresponding unicode character in one pass
- var currPos = 0;
- var d = str;
- var finalStr = '';
- while (true)
- {
- var start = d.indexOf('&#', currPos);
- if (start == -1)
- break;
- var end = d.indexOf(';', start);
- if (end == -1)
- break;
- var expr = d.substr(start + 2, end - start - 2);
- //handle hexadecimal values
- if (expr.substr(0, 1) == 'x')
- {
- expr = parseInt(expr.substr(1), 16);
- }
- else
- {
- expr = parseInt(expr);
- }
- if(expr >= -32768 && expr <= 65535)
- {
- expr = String.fromCharCode(expr);
- }
- else
- {
- expr = '';
- }
- finalStr = finalStr + d.substr(currPos, start - currPos) + expr;
- currPos = end + 1;
- }
- finalStr = finalStr + d.substr(currPos);
- return finalStr;
- }
- /**
- * Encode XML string, to be able to use with Titanium's XML parser
- * @param {Object} s
- */
- function encodeXMLString(s) {
- // XML characters for tags
- var conv = {
- '%3C': '<', '%3D': '=', '%3E': '>', '%0D%0A': "\n",
- '%20': ' ', '%22': '"',
- '%09': "\t", '%0A': "\n", '%0D': "\n", '%5B': '[',
- '%5D': ']'
- };
- s = encodeURI(s);
- // Replace XML characters back to normal
- for (var i in conv) {
- if (conv.hasOwnProperty(i)) {
- s = s.replace(new RegExp(i, 'g'), conv[i]);
- }
- }
- return s;
- }