保存 xml 文件 Windows phone 7

Posted

技术标签:

【中文标题】保存 xml 文件 Windows phone 7【英文标题】:Save xml file Windows phone 7 【发布时间】:2011-11-01 08:24:45 【问题描述】:

如何保存 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文件(代码)?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

您是否考虑过使用XmlSerializer 类,并使用各种属性的属性标记您的主题类?它会让你的代码更简单一点——simple example can be found here。 (并且要保存 Xml 文件,您需要将其写入特定应用程序实例的独立存储中,如果您快速 google 或查看其他答案,您会找到一堆示例)

【讨论】:

以上是关于保存 xml 文件 Windows phone 7的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows Phone 7 中解析 XML

解析来自 Windows Phone 7 中 TCP 套接字的 xml 内容

使用 tcp 套接字在 windows phone 7 上解析 xml 内容

如何将图片另存为从 windows phone 7 到服务器的文件路径

计算 Windows Phone 中的 xml 节点

Windows 7 Phone 文档数据库Rapid Repository正式发布