保存xml文件Windows phone 7

问题描述:

如何保存xml文件(代码)? 大家好。我可以读取XML文件,但我无法保存XML文件: 样品: 类主题:保存xml文件Windows phone 7

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文件(代码)后?

出于安全原因,每个应用程序都有自己的文件位置 - 隔离存储。所以,如果你要保存的文件,你应该做这样的事情:

using(var appStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
    using(var file = appStorage.OpenFile("YourFileName.xml", FileMode.OpenOrCreate)) 
    using(var writer = new StreamWriter(file)) 
    { 
     writer.Write("Your data"); 
    } 

您可以使用下面的链接

Read Xml file and save content into memory WP7

您的提问回答刚才读的第一部分,即

1.下载XML文件,并保存

你有没有考虑使用设g XmlSerializer类,并用各种属性上的属性标记Subject类?它会让你的代码更简单 - 一个simple example can be found here。 (并且为了保存Xml文件,您需要将它写入IsolatedStorage以供您的特定应用程序实例使用,如果您执行快速谷歌或查看其他答案,您会发现一堆样本)