Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

[70-526, #3] Altri dettagli sulla gestione dei documenti XML

Vediamo nel dettaglio altri aspetti del DOM del .NET Framework che ci permettono di lavorare sui nodi di un documento XML. La classe XmlDocument espone una serie di metodi riconoscibili dal prefisso Create, che consentono di creare nuovi attributi (CreateAttribute), commenti (CreateComment), elementi (CreateElement), nodi (CreateNode) e quant'altro.

XmlNodeList listNodes = _doc.GetElementsByTagName("book"); XmlNode nodoTrovato = listNodes[0]; XmlAttribute newAttribute = _doc.CreateAttribute("id"); newAttribute.InnerText = "1"; nodoTrovato.Attributes.Append(newAttribute);

Il codice qui sopra recupera tutti gli XmlNode chiamati book e prende il primo. Poi crea un nuovo attributo - notare che il costruttore di XmlAttribute prende il nome dell'attributo stesso - gli assegna un valore importantissimo, "1" ;-), e lo aggiunge al nodo di cui abbiamo ottenuto il riferimento prima. Se salvassimo su file con il metodo Save vedremmo:

<book id="1"> <author>Terry Brooks</author> <title>La Spada di Shannara</title> <pages>450</pages> <year>1998</year> </book>

Possiamo clonare un XmlNode con la chiamata al metodo CloneNode. Per esempio, sempre tenendo presente le righe di codice scritte sopra, possiamo clonare l'oggetto nodoTrovato ed ottenere nodoClonato. Questo metodo accetta un parametro bool che esprime se la clonazione deve avvenire anche per tutti gli eventuali child nodes dell'XmlNode che stiamo clonando. Possiamo quindi indicare true o false a seconda di quello che ci serve. Il metodo ritorna un altro oggetto XmlNode che va inserito nell'XmlDocument dove ci serve. Per esempio:

// Aggiunge nodoClonato in fondo, dopo tutti i <book> _doc.ChildNodes[0].AppendChild(nodoClonato); // Aggiunge nodoClonato prima di tutti i <book> _doc.FirstChild.PrependChild(nodoClonato);

AppendChild e PrependChild (di cui parlava mio fratello nel mio ultimo post) sono due metodi che inseriscono XmlNode in ultima ed in prima posizione rispetto ai child nodes dell'XmlNode su cui stiamo effettuando l'operazione.

Print | posted on mercoledì 10 gennaio 2007 12:09 | Filed Under [ Esame 70-526 ]

Feedback

Gravatar

# [70-526, #4] Leggere un documento XML con XmlReader

10/01/2007 18:01 | Technology Experience
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET