既存のファイルをmomoryにロードせずに、既存のxmlファイルにデータを追加したい。
私はデータモデルを持っています:
public class clsPerson
{
public string FirstName;
public string LastName;
public List<string> Likes;
}
xmlファイルに2人を追加し、ファイルを閉じてから、さらに2人を追加するこのコードがあります...
static void Main(string[] args)
{
List<clsPerson> p1 = new List<clsPerson>();
p1.Add(new clsPerson { FirstName = "John", LastName = "Dow", Likes = new List<string> { "Apples", "Bananas" } });
p1.Add(new clsPerson { FirstName = "Jane", LastName = "Dow", Likes = new List<string> { "Football", "Tennis" } });
string file = @"D:\people.xml";
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p1.GetType());
TextWriter tw = new StreamWriter(file);
x.Serialize(tw, p1);
tw.Close();
List<clsPerson> p2 = new List<clsPerson>();
p2.Add(new clsPerson { FirstName = "New", LastName = "Guy", Likes = new List<string> { "Reading", "Walking" } });
p2.Add(new clsPerson { FirstName = "Another", LastName = "Girl", Likes = new List<string> { "Surfing", "Running" } });
//... i want to add p2 to people.xml without having to load the entire file into memory again
}
ファイルをリロードして2つの新しいエントリを追加し、すべてのノードをリストに読み込んで新しいエントリを追加できますが、特にxmlに1000のエントリが含まれている場合、これは非効率的です。