"Serialization", wahlweise kombiniert mit einem Dateiformat und der konkreten Sprache (bspw. C#, C++, Java oder welche du auch verwendest)
Als Bibliothek bezeichnet man meist, allgemein ausgedrückt, eine Sammlung von Funktionalitäten, bspw. allen notwendigen um mit einem bestimmten Dateiformat zu interagieren, oder um Netzwerkprotokolle (HTTP, FTP, ...) einfacher verwenden zu können, oder ...
Was genau meinst du mit "Nodes" und "Childnodes"? Ich vermute, du liest den Inhalt einer XML-Datei aus, erhältst eine Struktur mit diesen Nodes und arbeitest direkt auf dieser Struktur weiter, oder?
Besser wäre es, stattdessen eigene Klassen zu haben, die auch das Repräsentieren, was du in deinem Programm bearbeitest. Wenn ich dein Programm richtig verstanden habe, wären das die Notizen, die einen Inhalt (im Textfeld bearbeitet) und einen Titel bzw. einen Namen (im Treeview angezeigt) haben. Entweder befinden diese sich in einem Baum, oder jeder Notiz ist eine Menge von Untergeordneten Notizen zugewiesen, was ebenfalls auf eine Baumstruktur hinauslaufen würde.
Würdest du weiterhin mit dem XMLWriter (und XMLReader, würde ich vermuten) weiterarbeiten, würdest du bei jedem Lesen diese Struktur aus den Nodes aus der XML-Datei erzeugen, und bei jedem Speichern aus dieser Struktur die Nodes erzeugen. Wie bereits geschrieben wäre es einfacher, die intern verwendeten Klassen (also "Notiz") automatisch serialisieren zu lassen.