Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 16th, 2012  |  syntax: None  |  size: 4.14 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.  
  2. // create table view data object
  3. var data = [];
  4.  
  5. var xhr = Ti.Network.createHTTPClient();
  6. //xhr.open("GET","http://v2.0.news.tmg.s3.amazonaws.com/feeds/news.xml");
  7. xhr.open("GET","http://www.musiknyt.dk/index.php?id=iphone_latest100_nyheder&type=103");
  8. //xhr.open("GET","http://snowboard.riders.dk/feed/");
  9.  
  10.  
  11. xhr.onload = function()
  12. {
  13.         try
  14.         {      
  15.                
  16.                 var xmlStr = this.responseText;
  17.  
  18.                 var doc = Ti.XML.parseString(encodeXMLString(this.responseText)).documentElement;
  19.                 //var doc = this.responseXML.documentElement;
  20.  
  21.                 var items = doc.getElementsByTagName("entry");
  22.                 var x = 0;
  23.                 for (var c=0;c<items.length;c++)
  24.                 {
  25.                         var item = items.item(c);
  26.                         var thumbnails = item.getElementsByTagName("media:thumbnail");
  27.                                 var title = item.getElementsByTagName("title").item(0).text;
  28.                                 var row = Ti.UI.createTableViewRow({
  29.                                         height:60,
  30.                                         backgroundImage:'/images/tablebackground.png',                                 
  31.                                 });
  32.  
  33.                                 var label = Ti.UI.createLabel({
  34.                                         text:title,
  35.                                         left:5,
  36.                                         right:5                
  37.                                 });
  38.                                 row.add(label);
  39.                                
  40.                                
  41.                                 data[x++] = row;
  42.                                 row.url = item.getElementsByTagName("link").item(0).text;
  43.                                
  44.                                 var temp = item.getElementsByTagName("summary").item(0).firstChild.text;
  45.                                
  46.                                
  47.                                 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>';
  48.                                 var staticHTMLSlut = '</div></body></html>';
  49.                 row.html = staticHTMLStart + temp + staticHTMLSlut;
  50.                                
  51.                                
  52.                                 //row.html = encodeXml(item.getElementsByTagName("summary").item(0).firstChild.text);
  53.                                
  54.                 //row.title = item.getElementsByTagName("title").item(0).text;
  55.                                
  56.                                 var titlemads = decodeURI(item.getElementsByTagName("title").item(0).text);
  57.                                 row.title = titlemads;
  58.                                
  59.                 }
  60.                 var tableview = Titanium.UI.createTableView({data:data});
  61.                 Titanium.UI.currentWindow.add(tableview);
  62.                 tableview.addEventListener('click',function(e)
  63.                 {
  64.                         var w = Ti.UI.createWindow({title:e.row.title});
  65.                         //var wb = Ti.UI.createWebView({url:e.row.url});
  66.                         //var wb = Ti.UI.createWebView({url:'http://www.dr.dk'});
  67.             var wb = Ti.UI.createWebView({html:e.row.html});
  68.                         w.add(wb);
  69.                         var b = Titanium.UI.createButton({
  70.                                 title:'Close',
  71.                                 style:Titanium.UI.iPhone.SystemButtonStyle.PLAIN
  72.                         });
  73.                         w.setLeftNavButton(b);
  74.                         b.addEventListener('click',function()
  75.                         {
  76.                                 w.close();
  77.                         });
  78.                         w.open({modal:true});
  79.                 });
  80.         }
  81.         catch(E)
  82.         {
  83.                 alert(E);
  84.         }
  85. };
  86. xhr.send();
  87.  
  88.  
  89. function mgDecodeHTMLEntities(str)
  90. {
  91.     //substitutes html numeric entities with the corresponding unicode character in one pass
  92.  
  93.      var currPos = 0;
  94.     var d = str;
  95.    
  96.     var finalStr = '';
  97.     while (true)
  98.     {
  99.         var start = d.indexOf('&#', currPos);
  100.         if (start == -1)
  101.             break;
  102.         var end = d.indexOf(';', start);
  103.         if (end == -1)
  104.             break;
  105.         var expr = d.substr(start + 2, end - start - 2);
  106.        
  107.         //handle hexadecimal values
  108.         if (expr.substr(0, 1) == 'x')
  109.         {
  110.             expr = parseInt(expr.substr(1), 16);
  111.         }
  112.         else
  113.         {
  114.             expr = parseInt(expr);
  115.         }
  116.        
  117.         if(expr >= -32768 && expr <= 65535)
  118.         {
  119.             expr = String.fromCharCode(expr);
  120.         }
  121.         else
  122.         {
  123.             expr = '';
  124.         }
  125.  
  126.         finalStr = finalStr + d.substr(currPos, start - currPos) + expr;
  127.         currPos = end + 1;
  128.     }
  129.     finalStr = finalStr + d.substr(currPos);
  130.     return finalStr;
  131. }
  132.  
  133.  
  134.  
  135.  
  136. /**
  137.  * Encode XML string, to be able to use with Titanium's XML parser
  138.  * @param {Object} s
  139.  */
  140.  
  141. function encodeXMLString(s) {
  142.     // XML characters for tags
  143.     var conv = {
  144.         '%3C': '<', '%3D': '=', '%3E': '>', '%0D%0A': "\n",
  145.         '%20': ' ', '%22': '"',
  146.         '%09': "\t", '%0A': "\n", '%0D': "\n", '%5B': '[',
  147.         '%5D': ']'
  148.     };
  149.  
  150.     s = encodeURI(s);
  151.     // Replace XML characters back to normal
  152.     for (var i in conv) {
  153.         if (conv.hasOwnProperty(i)) {
  154.             s = s.replace(new RegExp(i, 'g'), conv[i]);
  155.         }
  156.     }
  157.  
  158.     return s;
  159. }