Premetto che non conosco molto C# ma spero di poterti essere d'aiuto.
Vediamo se ho capito: vorresti eseguire l'UPDATE di nodi XML in base alle tue modifiche.
Puoi usare il metodo SelectSingleNode per ricercare un nodo in base ad un suo attributo: se conosci un minimo di regole XPath è molto semplice.
Se devi ad esempio cercare in base all'attributo Nome:
codice:
XMLNode myNodeRuolo =xmldoc.SelectSingleNode("//ruolo[@nome='" + myNome + "'");
dove myNome è il valore del nome che ricerchi.
se myNodeRuolo risulta Nothing vuol dire che il nodo non esiste e ne devi creare uno nuovo.
Se invece non è Nothing il nodo è presente e a questo punto puoi usare la SelectSingleNode per in maniera analoga usando il myNodeRuolo.
Esempio: ricavo un nodo pagina
codice:
XMLNode myNodePagina = myNodeRuolo.SelectSingleNode("pagina[@nome='" + myNomePagina + "'");
Se invece vuoi ciclare sui diversi nodi pagina (vedo che ce n'è più di uno nel nodo Ruolo) puoi usare la SelectNodes (la SelectSingleNode non fa altro che restituire il primo nodo che soddisfa la condizione che gli passi):
codice:
XMLNodeList nodiPagine = myNodeRuolo.SelectNodes("pagina[@nome='" + myNomePagina + "'");
Una volta ottenuto i nodi desiderati, puoi settarne gli attributi a piacimento.
Non ho provato il codice, sto andando a memoria, ma spero di averti suggerito qualcosa di utile...
Ciao, javalon