0

既存のファイルを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のエントリが含まれている場合、これは非効率的です。

4

0 に答える 0