moving to iOS- XML files

Hello there,

I’m trying to move a project i wrote in c# for a windows platform to an iPad.

In my project, i read/write XML files locally to load/save data to run the game.

Before i go out and buy a mac/iPad, does anyone know if saving/loading xml files will work for an iPad? OR will i have to rewrite the project using ‘plist’ files and the like?

You can write to local files in iOS. The restriction is that you can only write to the app’s “Documents” directory. You can reach that using the following path:

Application.dataPath + "/../../Documents/"

I know this is an old post but I just spent all night trying to get this working so here’s my 2 cents… (C#)

You cannot simply drag files into the iOS app directory, they need to be created and edited within the application itself.

Files can only be written to iOS with the .net xmlWriter class using this file path (thank you burnumd!):

string sPath = Application.dataPath + "/../../Documents/FILE_NAME";
xmlWriter myWriter = XmlWriter.Create(sPath,xmlWriterSettings);

I got this working by building my default XML file as a TextAsset (which can be read it with an XML reader):

TextAsset xml = (TextAsset)Resources.Load("FILE_NAME",typeof(TextAsset));
xmlReader myReader = new StringReader (xml.text);

Next I had a test to see if any written files matched the name of my written XML file:

if(File.Exists(sPath)) {
		// Load from XML file	
}
else {
// Load from Text Asset
}

This way on the first load (when the XML file doesn’t exist yet) the program reads from the built default TextAsset (which is read only) and then once the XML is written it can be read and amended accordingly.

Note, don’t use the .xml file extension on your file names. For some reason that stops it working. No file extension works fine though.