Cambiare il valore di un attributo di un nodo

lunedì 28 maggio 2007 - 10.56

Simpz Profilo | Junior Member

Ciao a tutti,
Ho bisogno di cambiare il valore di un attributo di un nodo in un file xml.

Per prendere il nodo specificato faccio così:

XmlDocument doc = new XmlDocument();
doc.Load("prova.xml");
XmlNode nodo = doc.SelectSingleNode("espressione xpath");

Poi come faccio a cambiare seccamente il valore di un attributo??? Non devo rigenerare tutto il nodo cancellandolo e rimettendolo dentro vero? qualcuno mi sa dare una dritta?

Grazie a tutti!

Wamba Profilo | Expert

>Ciao a tutti,
Ciao

>Ho bisogno di cambiare il valore di un attributo di un nodo in
>un file xml.
>
>Per prendere il nodo specificato faccio così:
>
>XmlDocument doc = new XmlDocument();
>doc.Load("prova.xml");
>XmlNode nodo = doc.SelectSingleNode("espressione xpath");
>
>Poi come faccio a cambiare seccamente il valore di un attributo???
>Non devo rigenerare tutto il nodo cancellandolo e rimettendolo
>dentro vero? qualcuno mi sa dare una dritta?
>
>Grazie a tutti!

la funzione doc.SelectSingleNode("espressione xpath") restituisce una reference all'oggetto nodo che si trova nel doc. Quindi l'istanza nodo è esattamente la stessa di quella presente nell'oggetto doc.
In altre parola basta modificare l'attributo dentro nodo e questo è modificato anche dentro il nodo scelto dentro doc perchè sono la stessa cosa.
Mi è uscito un discorso un po' contorto (la fretta), ma spero di essere stato chiaro. Se hai dubbi chiedi pure.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Simpz Profilo | Junior Member

> In altre parola basta modificare l'attributo dentro nodo e questo è modificato anche dentro il nodo scelto dentro doc perchè sono la stessa cosa.

Nell'XmlNode.Attributes non ho trovato una funzione che mi potesse fare scegliere un attributo specifico, che procedura posso utilizzare? E poi una volta che ho cambiato quel valore, l'istruzione doc.save(path) la devo sempre dare giusto (per salvare il documento modificato)?

Grazie anche della solerzia nella risposta

Wamba Profilo | Expert

>Nell'XmlNode.Attributes non ho trovato una funzione che mi potesse
>fare scegliere un attributo specifico, che procedura posso utilizzare?

c#
nodo.Attributes["pippo"].Value = "nuovo valore";
vb
nodo.Attributes("pippo").Value = "nuovo valore" 'Questa controllala mi stò arrugginendo con il vb

>E poi una volta che ho cambiato quel valore, l'istruzione doc.save(path)
>la devo sempre dare giusto (per salvare il documento modificato)?

con la modifica che fai sopra viene modificato solo lo stato in ram dell'istanza, quindi si hai sempre bisogno di salvare su disco.

>
>Grazie anche della solerzia nella risposta

prego figurati

-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Simpz Profilo | Junior Member

ottimo!!!

Grazie mille!!! :)

Wamba Profilo | Expert

ancora, prego
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5