2011-03-11 62 views
0

我试图从资源中读取一个xml文件并更新它,保存为新的xml文件。我得到一个错误,因为指定的方法不受支持而我保存我的更改。阅读Xml和更新

var s = Application.GetResourceStream(new Uri("Customer.xml", UriKind.Relative)); 

      SaveFileDialog dialog = new SaveFileDialog(); 
      dialog.DefaultExt = "*.xml"; 
      dialog.Filter = "Excel Xml (*.xml)|*.xml|All files (*.*)|*.*"; 
      if (dialog.ShowDialog() == false) 
       return; 

      XDocument data = XDocument.Load(s.Stream); 

      XElement customerElement = data.Descendants("Customer").Where(c => c.Attribute("ID").Value.Equals("1")).FirstOrDefault(); 
      if (customerElement != null) 
      { 
       customerElement.SetElementValue("Location", "London"); 

       data.Save(s.Stream); // got an error here: Specified method is not supported. 
      } 

      using (var myXML = new StreamWriter(dialog.OpenFile())) 
      { 
       var reader = new StreamReader(s.Stream); 

       while (!reader.EndOfStream) 
       { 
        var line = reader.ReadLine(); 
        myXML.WriteLine(line.Trim()); 
       } 
       myXML.Close(); 
      } 

需要此帮助。

感谢

+0

我想原因是你不能像这样改变你的应用程序的资源。 – 2011-03-11 13:57:25

+0

什么是正确的做法 – Hukam 2011-03-11 14:05:29

+1

将该xml文件的构建操作标记为内容,可能有帮助 – Terry 2011-03-11 14:50:26

回答

2

不要将XML,你是假设进行修改,如资源(资源被内置到汇编文件,所以资源的修改等于* .dll文件的修改,这是不允许的)。

使用文件系统或数据库或远程服务来存储此文件。