Titanium Community Questions & Answer Archive

We felt that 6+ years of knowledge should not die so this is the Titanium Community Questions & Answer Archive

How to download XML file?

I have a PHP script on my server that parses through a web page and creates an XML file for the data, so that I can more easily consume it through my app. Now I know I can parse XML through XHR and whatnot, however, I don't want to be constantly redownloading the file, since the data is not going to change very often.

So, basically my question is, is there a way to download an XML file and store it on the device or in the app somehow, so that I can then load and parse that? Rather than having to constantly go to the server and download it every time I start the app?

Thanks for any help!

— asked May 22nd 2010 by Bill Labus
  • download
  • file
  • xml

1 Answer

  • This is what i use to read stored xml when no network connectivity, else access new data. Help yaself.

    if (Titanium.Network.networkType == Titanium.Network.NETWORK_NONE){
      var f = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,'store.xml');
                 var content = f.read();
                 var doc = Ti.XML.parseString(content.text);
                 ///blah blah with node value and elements
          Ti.UI.createAlertDialog({title:'Network Error', message:'APP requires network connectivity to load data on first use.'}).show();
    } //end network check
    else{ //network present
    var xhr = Ti.Network.createHTTPClient();
    xhr.onerror = function(e)
                Ti.UI.createAlertDialog({title:'Network Error', message:'Unable to retrieve data.'}).show();
                Ti.API.info('IN ERROR ' + e.error);
    xhr.onload = function(){ 
               var f = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,'store.xml');
            var doc = this.responseXML.documentElement;
            if (doc.getElementsByTagName("success").item(0).text==1){
            } //end if succesul
        else{Ti.UI.createAlertDialog({title:'Service Error', message:'Service is not available at the moment, please try it again.'}).show();}}
        catch(E){Ti.UI.createAlertDialog({title:'Application Error', message:'Unable to obtain data, please try it later.'}).show();}    
    }; //end try
    — answered May 22nd 2010 by Daniel Lim
The ownership of individual contributions to this community generated content is retained by the authors of their contributions.
All trademarks remain the property of the respective owner.