como vês é mais simples e fácil de entender:
public static void LoadData(string fileName)
{
IsolatedStorageFile isstore = IsolatedStorageFile.GetUserStoreForApplication(); // ver tb
http://developer.nokia.com/Community/Wiki/Parse_Local_XML_file_in_Windows_Phone
using (Stream stream = isstore.OpenFile(fileName, FileMode.Open, FileAccess.Read))
{
XDocument doc = XDocument.Load(stream, LoadOptions.None);
foreach (XElement el in doc.Root.Elements())
{
foreach (XElement element in el.Elements().Descendants())
{
if (element.Name == "latitude") VarsGlobs.latitude = double.Parse(element.Value);
if (element.Name == "longitude") VarsGlobs.longitude = double.Parse(element.Value);
if (element.Name == "radius") VarsGlobs.radius = double.Parse(element.Value);
(...)
}
}
}
}
public static void WriteData(string fileName)
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream(fileName, FileMode.Create, myIsolatedStorage))
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.OmitXmlDeclaration = true;
using (XmlWriter writer = XmlWriter.Create(isoStream, settings))
{
writer.WriteStartElement("Dados");
writer.WriteAttributeString("App", "Config 1");
writer.WriteStartElement("Valores");
writer.WriteStartElement("Item");
writer.WriteStartElement("latitude", "");
writer.WriteString(VarsGlobs.latitude.ToString());
writer.WriteEndElement();
writer.WriteStartElement("longitude", "");
writer.WriteString(VarsGlobs.longitude.ToString());
writer.WriteEndElement();
writer.WriteStartElement("radius", "");
writer.WriteString(VarsGlobs.radius.ToString());
writer.WriteEndElement();
(...)
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
// Ends the document
writer.WriteEndDocument();
// Write the XML to the file.
writer.Flush();
}
}
}
}
edit: o forum não é muito amigo de identações, mas é fácil coloca-las pra quem já programa