Сохранить XML-файл Windows Phone 7 - PullRequest
0 голосов
/ 01 ноября 2011

Как я могу сохранить XML-файл (код)? Всем привет. Я могу прочитать XML-файл, но не могу сохранить XML-файл: Образец : Тема предмета:

public class Subject 
{
   public int Id 
   { 
     get; 
     set; 
   }
   public Subject() 
   {}
   public string Name 
   { 
     get; 
     set; 
   }
   public string Number 
   {
     get; 
     set; 
   }
}

Ученик класса:

public class Student 
{
   public string Id 
   { 
      get; 
      set; 
   }
   public Student() 
   {}
   public string Name 
   {
      get; 
      set; 
   }

   public string IconURI 
   {
      get; 
      set; 
   }
   public List<Subject> Subjects 
   {
      get; 
      set; 
   }
}

MainPage.xaml.cs:

public partial class MainPage : PhoneApplicationPage 
{
    public MainPage() 
    {
      InitializeComponent();
    }
    public List<Student> Students 
    {
      get; 
      set; 
    }
}

Загрузить файл xml:

private void LoadXML() 
{
   Uri uri = new Uri("/DemoWP7;component/Save.xml", UriKind.Relative); 
   StreamResourceInfo xml = App.GetResourceStream(uri); 
   XDocument doc = XDocument.Load(xml.Stream);
   XElement menu = doc.Descendants("menu").First(); 
   Students = (from student in menu.Descendants("student") 
   select new Student() 
   {
      Id = student.Attribute("id").Value, 
      Name = student.Attribute("name").Value, 
      IconURI = student.Attribute("icon").Value, 
      Subjects = (from subject in student.Descendants("subject") 
      select new Subject() 
      {
         Name = subject.Attribute("name").Value, 
         Number = subject.Attribute("number").Value, 
      }).ToList<Subject>() 
    }).ToList<Student>(); 
}

Мне нужно сохранить файл .xml такой же, после этого LoadXML ()

<?xml version="1.0" encoding="utf-8" ?> 
<menu> 
<student id="group1" name="Team A" icon="Images/Team-A.png"> 
<subject name="Math" 
number="72"> 
</subject> 
<subject name="Art" 
number="85"> 
</subject> 
</student>
<student id="group2" name="Team D" icon="Images/Team-D.png"> 
<subject name="History" 
number="69"> 
</subject> 
</student> 

Как сохранить файл XML (код)?

Ответы [ 3 ]

2 голосов
/ 01 ноября 2011

В целях безопасности у каждого приложения есть свое место для файлов - Isolation Storage. Итак, если вы хотите сохранить свой файл, вы должны сделать что-то вроде этого:

    using(var appStorage = IsolatedStorageFile.GetUserStoreForApplication())
    using(var file = appStorage.OpenFile("YourFileName.xml", FileMode.OpenOrCreate))
    using(var writer = new StreamWriter(file))
    {
        writer.Write("Your data");
    }
0 голосов
/ 02 ноября 2011

Рассматривали ли вы использование класса XmlSerializer и разметку класса Subject с помощью атрибутов различных свойств? Это сделает ваш код немного проще - простой пример можно найти здесь . (и чтобы сохранить файл Xml, вам нужно записать его в IsolatedStorage для вашего конкретного экземпляра приложения, для которого, если вы сделаете быстрый поиск в Google или посмотрите другие ответы, вы найдете кучу примеров)

0 голосов
/ 01 ноября 2011

Вы можете использовать следующую ссылку

Чтение файла XML и сохранение содержимого в памяти WP7

для ответа на свои вопросы просто прочитайте первую часть, т.е.

1. Загрузка файла XML и сохранение

...