我需要序列化为XML文档而不覆盖当前存在的数据。我有一个方法可以做到这一点,它将保存到xml文件中,但是会在序列化时删除当前文件中的任何内容。以下是代码。在不覆盖以前的数据的情况下序列化为XML文档
public void SaveSubpart()
{
SOSDocument doc = new SOSDocument();
doc.ID = 1;
doc.Subpart = txtSubpart.Text;
doc.Title = txtTitle.Text;
doc.Applicability = txtApplicability.Text;
doc.Training = txtTraining.Text;
doc.URL = txtUrl.Text;
StreamWriter writer = new StreamWriter(Server.MapPath("~/App_Data/Contents.xml"));
System.Xml.Serialization.XmlSerializer serializer;
try
{
serializer = new System.Xml.Serialization.XmlSerializer(doc.GetType());
serializer.Serialize(writer, doc);
}
catch (Exception ex)
{
//e-mail admin - serialization failed
}
finally
{ writer.Close(); }
}
读取XML,追加新的项目,然后保存... – I4V
**如果该文件存在,它被覆盖**([MSDN :StreamWriter构造函数(字符串)](http://msdn.microsoft.com/en-us/library/fysy0a4b.aspx),看下'备注') –
所以没有办法在序列化时添加一个节点? – Jeff