Ho sempre lavorato poco con XML, vuoi per scelta, vuoi per la continua intermediazione con istituti bancari e finanziari che da secoli hanno i propri formati proprietari...

In questi giorni, cambiando un pò clienti, sto abbracciando un pò di piu l'interscambio di dati con i webservices....

Oggi per esempio stavo giocando con un WebService che mi restituisce uno stringone, che io devo parsare in XML... un altro, ovvio, dopo quello dell'altro post.
Però l'altra volta era diverso, li dovevo inserire dati, qui devo prenderli dallo stringone, dopo aver eliminato alcuni markup di esito assolutamente non interessanti.

Quindi, ho provveduto a caricarmi in memoria questo stringone con il metodo ReadXml dell'XmlDocument

XmlDocument document = new XmlDocument();
document.LoadXml(stringa)

Ho chiamato i nodi con una query XPath che mi desse il padre del mio "dataset"

XmlNodeList nodes = document.SelectNodes("//Parent");

Da qui in poi è semplice: prendo il nodo che mi serve e ci riempio uno Stringreader che poi chiamo con il metodo ReadXml del dataset:

System.IO.StringReader xmlReader = newSystem.IO.StringReader(document.InnerXml);
DataSet ds = new DataSet();
ds.ReadXml(xmlReader, XmlReadMode.ReadSchema);

In questo caso ho usato "ReadSchema" perchè avevo già l'XSD compreso nella definizione, potevo usare "IgnoreSchema" e gestirmi da me la creazione della DataTable!