Ciao, sto creando una applicazione windows in Visual Studio 2010 utilizzando C# .NET 4.0.
Per salvare i dati che posso aggiungere tramite un apposito form, ho deciso di utilizzare un file XML.
Per creare il file XML e la struttura non ho problemi, o per lo meno aggiungere un elemento coi relativi nodi riesco a farlo nel modo seguente:

codice:
XmlElement newelem = VarGlobal.xmldoc.CreateElement("db");
newelem.InnerXml = "<arg>" + textBox1.Text + "</arg>\n\t<ris>" + textBox2.Text + "</ris>";
newelem.AppendChild(VarGlobal.xmldoc.CreateWhitespace("\n"));
VarGlobal.xmldoc.DocumentElement.AppendChild(newelem);
VarGlobal.xmldoc.PreserveWhitespace = true;
XmlTextWriter wrtr = new XmlTextWriter(Application.StartupPath + "\\db.xml", Encoding.UTF8);
VarGlobal.xmldoc.WriteTo(wrtr);                     
wrtr.Close();
Quindi per esempio aggiungento 3 elementi il file XML diventerebbe come segue:

codice:
<?xml version="1.0" encoding="utf-8" ?>
<DataBase>
    <db>
         <arg>dato1</arg>
         <ris>dato2</ris>
    </db>
    <db>
         <arg>dato3</arg>
         <ris>dato4</ris>
    </db>
    <db>
         <arg>dato5</arg>
         <ris>dato6</ris>
    </db>
</DataBase>
Come spesso mi accade, purtroppo programmano mi sono accorto che la struttura così creata potrà essere semplificata raggruppando i vari elementi con lo stesso nodo <arg> sotto lo stesso elemento. Questa cosa già so come farla perchè è praticamente lo stesso metodo precedentemente postato.
Il problema è, tenendo conto l'esempio postato e quindi la corrente struttura del file XML, se per esempio al secondo elemento (che corrisponderà a quello di indice 1) volessi aggiungere 1 o 2 nodi facendolo diventare ad esempio come segue:

codice:
<?xml version="1.0" encoding="utf-8" ?>
<DataBase>
    <db>
         <arg>dato1</arg>
         <ris>dato2</ris>
    </db>
    <db>
         <arg>dato3</arg>
         <ris>dato4</ris>
         <ris2>dato7</ris>
         <ris3>dato8</ris>
    </db>
    <db>
         <arg>dato5</arg>
         <ris>dato6</ris>
    </db>
</DataBase>
Come posso fare?

Io per la lettura dei dati, sia per popolare i controlli del form che per la loro eventuale modifica, utilizzo XmlNodeList e più precisamente:

codice:
elemarg = xmldoc.DocumentElement.GetElementsByTagName("arg");
elemris = xmldoc.DocumentElement.GetElementsByTagName("ris");
Grazie in anticipo ^_^