Mój problem wygląda następująco:

Mam dokument XML (prosta lista kontaktów) i chcę w niej zamienić dwie gałęzie (np w wyniku aktualizacji danych jednego z kontaktów). Robie to tak:

XmlDocument doc = new XmlDocument();
            doc.Load("temp.xml");

Potem wyszukuje gałąź którą chce zastąpić:
XmlNode staryKontakt = doc.SelectSingleNode("kontakty/kontakt[@nazwa = \"NazwaKontaktu\"]");

i teraz następuje zastąpienie gałęzi:

doc.ReplaceChild(nowyKontakt, staryKontakt);

staryKontakt i nowyKontakt różnią się tylko zmianą wartości jednego elementu, cała reszta została bez zmian.

Problem w tym że to nie działa :) a dokładnie: "The node to be removed is not a child of this node."

Pomocy.

A tak przy okazji mam jeszcze jedno pytanie.
Mam drzewo zbudowane z kilku gałęzi. Jak pobrać nazwę gałęzi zaznaczonej ?